결과 싱글 스레드 환경에서 Vector는 ArrayList 대비 약 6배의 시간이 소요된다. 멀티 스레드 환경에서 Vector는 synchronized ArrayList 대비 약 1.3배의 시간이 소요된다. 멀티 스레드 환경에서 synchronized ArrayList은 Mutex.withLock ArrayList 대비 약 2.2배의 시간이 소요된다. Vector 대신 ArrayList를 사용하려면 반드시 원자적인 연산만 수행해야 한다. 본문 Java에는 배열을 사용한 List 구현체로 Vector와 ArrayList가 있다. Vector는 모든 add, get, set이 synchronized로 작동하는 점이 ArrayList와 다르다. Vector와 ArrayList와 충분한 capacity만 확보되..
추가되는 사항C++ 구조체에는 멤버 함수를 추가할 수 있다. C++ 구조체의 멤버 함수가 멤버 변수를 수정하지 않을 때에는 const 기호를 추가할 수 있다. struct Object { int v; int foo() const { return v; } int bar() { return v; } }; const Object o; o.foo(); // OK o.bar(); // Error: Non-const member functionC++에서 raw pointer를 동적 할당, 해제할 때는 new-delete을 사용한다. > malloc, free는 더 이상 사용되지 않는다. constexpr을 이용해서 상수를 정의한다. > 더 이상 #define을 이용해서 상수를 정의하지 않는다. C++에서 raw p..
프로젝트 목표 C언어를 배우고 나서 C++ 또는 OOP로 발전시키고자 하는 모든 개발자들 기본적인 C 문법은 모두 알고 있는 상태여야하며 그렇지 않을 경우 이해에 어려움이 있을 수 있음. 목표C style로 vector 작성디자인vector는 다음의 멤버 변수를 갖는다.int* data 원소가 저장될 공간 int capacity data의 크기 int length 저장된 원소의 수다음의 helper 함수가 필요하다.int ensure_capacity(vector* v, int to_add) v.data에 to_add만큼의 공간이 남아있는지 확인한다. 남아있다면 1을, 그렇지 않다면 0을 반환한다. void increase_capacity(vector* v) v.data를 v.capacity의 두 배로 재..
- Total
- Today
- Yesterday
- C++
- d802
- f320k
- 포인터
- c++11
- linaro
- C
- cyanogenmod
- vector
- nodeal
- Kotlin
- dokdo 4.0.3
- 객체지향
- rule_of_five
- G2
- Java
- CM11
- g2 korea
- CM10.2
- dokdo project
- PipelineContext
- dokdo-project
- rule_of_three
- c++ struct
- C++ 업캐스팅
- c++ 상속
- inline class
- LG
- f320s
- OOP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |