effective STL(2)
-
[effective STL] 항목 17 : 용량 바꿔치지 묘수(swap)
예시100000명의 지원자를 담는 백터가 있다고 했을 때,지원자가 줄어들때마다 백터에서 erase된다.10명이 남게 되었을 때, 용량은 그대로 100000이다. 어떻게 해야하는가? 방법swap을 통한 방법이다.복사생성자를 이용하여 나오는 임시객체와 기존 객체를 스왑한다. 1234567891011121314151617181920212223242526272829303132333435363738#include #include #include void printSizeAndCapacity(const std::vector& vec){ std::cout
2015.12.26 -
[effective STL] 항목 16 : 기존 C API에 vector와 string 넘기기
Sourcehttps://github.com/ElementalKiss/Cpp/blob/master/Example/VectorAndStringUsingCAPI.cpp 서론기존에 잘 구현되어 있는 C API를 사용하는데 vector와 string을 쓰는데 뭔가 깨림찍한게 있다. vector - &vec[0]을 통해 포인터를 넘긴다.string - str.c_str() 함수를 통해 문자열 포인터를 넘긴다. begin?begin()은 엄연히 반복자를 반환하므로 헷갈리면 안된다. 굳이 사용하겠다면 &*vec.begin() 형태로....(이건 좀 아닌듯) string은 왜 함수를 사용하는가?- string의 데이터 자체가 연속 메모리에 저장되도록 규정되어 있지 않다.(아닐수도 있다는 이야기)- string의 내부 ..
2015.12.26