|
| CArrayWithExternalBuffer (void *buffer, INDEXTYPE capacity) |
|
void | MustNotNull () const |
|
void | MustNull () const |
|
bool | IsNull () const |
|
void | Init (void *buffer, INDEXTYPE capacity) |
|
void | Uninit () |
|
void | ShareTo (CArrayWithExternalBuffer &dest) const |
|
| CFastArray () |
|
| CFastArray (const TYPE *data, INDEXTYPE count) |
|
| CFastArray (const CFastArray &src) |
|
void | SetGrowPolicy (GrowPolicy val) |
|
GrowPolicy | GetGrowPolicy () |
|
void | SetMinCapacity (INDEXTYPE newCapacity) |
|
void | SetCapacity (INDEXTYPE newCapacity) |
|
void | SuspendShrink () |
|
void | OnRecycle () |
|
void | OnDrop () |
|
void | SetCount (INDEXTYPE newVal) |
|
void | AddCount (INDEXTYPE addLength) |
|
void | resize (INDEXTYPE sz) |
| for STL compatibility
|
|
INDEXTYPE | GetCapacity () const |
|
INDEXTYPE | GetCount () const |
|
INDEXTYPE | size () const |
| for STL compatibility
|
|
bool | IsEmpty () const |
|
void | Clear () |
|
void | ClearAndKeepCapacity () |
|
T_IN | ElementAt (INDEXTYPE index) const |
|
TYPE & | ElementAt (INDEXTYPE index) |
|
T_IN | operator[] (INDEXTYPE index) const |
|
TYPE & | operator[] (INDEXTYPE index) |
|
TYPE * | GetData () |
|
const TYPE * | GetData () const |
|
void | Add (T_IN value) |
|
void | Insert (INDEXTYPE indexAt, T_IN value) |
|
void | AddRange (const TYPE *data, INDEXTYPE count) |
|
void | InsertRange (INDEXTYPE indexAt, const TYPE *data, INDEXTYPE count) |
|
void | CopyRangeTo (CFastArray &dest, INDEXTYPE srcOffset, INDEXTYPE count) const |
|
void | CopyTo (CFastArray &dest) const |
|
void | CopyFrom (const CFastArray &src) |
|
void | CopyFrom (const TYPE *from, INDEXTYPE fromCount) |
|
void | RemoveRange (INDEXTYPE index, INDEXTYPE count) |
|
void | RemoveAt (INDEXTYPE index) |
|
bool | RemoveOneByValue (T_IN value) |
|
CFastArray & | operator= (const CFastArray &src) |
|
INDEXTYPE | FindByValue (T_IN value) |
|
bool | Contains (T_IN value) |
|
bool | Equals (const CFastArray &rhs) const |
|
void | clear () |
| for STL compatibility
|
|
iterator | begin () |
|
const_iterator | begin () const |
|
iterator | end () |
|
const_iterator | end () const |
|
iterator | erase (iterator iter) |
|
TYPE | PopBack () |
|
void | RemoveAndPullLast (intptr_t index) |
|
template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
class Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >
외부 버퍼를 사용하는 배열 클래스입니다.
주의: 외부 버퍼안에 이미 할당된 객체들이 존재하지 않아야 합니다. 즉 단순히 초기화된 메모리 영역이어야 합니다. 왜냐하면 CArrayWithExternalBuffer 가 초기화할 것이기 때문입니다.
- 매개변수
-
TYPE | 배열의 원소 타입입니다. |
RAWTYPE | 배열 원소가 raw memory copy를 해도 안전한 타입인지에 대한 여부입니다. int는 안전하지만 std.string은 안전하지 않습니다. 배열의 항목 타입이 생성자, 파괴자, 복사 대입 연산자가 사용되지 않아도 되는 타입인 경우 true로 지정할 수 있습니다. 이를 true로 지정하면 배열에 삽입, 삭제, 크기 변경 등을 할 때 내부적으로 발생하는 배열 항목의 생성, 파괴, 복사 과정을 위해 생성자, 파괴자, 복사 대입 연산자를 호출하지 않습니다. 따라서 처리 속도가 향상됩니다. 기본값은 false입니다. |
INDEXTYPE | 배열 최대 크기 및 index의 type. int32,int64,intPtr 중 하나를 쓰는 것을 권장합니다. 32-64bit int간 casting 부하도 무시 못하므로 적절한 것을 쓸 것을 권합니다. 예를 들어 패킷 크기의 경우 웬만하면 2GB를 넘는 것을 안 다루므로 int32를 권장합니다. 로컬 프로세스에서만 다루는 것이면 intPtr을 권합니다. 네트워크 통계 등 32bit로는 불충분한 값을 다루면 int64를 권합니다. |