본문 바로가기

C++10

string join 문자열 합치기 boost join 라이브러리 사용 std::vector list;list.push_back("Hello");list.push_back("World!");std::string joined = boost::algorithm::join(list, ", "); 결과 : "Hello, World!" std 사용 std::vector list;list.push_back("Hello");list.push_back("World!");std::string delimiter = ", "; 이렇게?std::accumulate(list.begin(), list.end(), string(), [&delimiter](const std::string& lhs, const std::string& rhs) { return lhs +.. 2018. 3. 9.
Replacement new 메모리 할당 없이 생성자 호출하기.. Replacement new 메모리 할당 없이 생성자 호출하기.. 직접 관리하는 메모리에 클래스 등을 넣고 생성자만 호출하기위해 사용한다. #include class TestClass { public: TestClass(int num) { mNum = num; } ~TestClass() { } private: int mNum; } void test() { static char buffer[sizeof(TestClass)]; new(buffer) TestClass(1); } 2011. 7. 26.
운영체제 시스템 정보를 알아보자! 운영체제 시스템 정보를 알아보자! CPU 의 타입, 각 프로세스가 사용가능한 가장 큰 주소값 사용 가능항 CPU 및 코어 개수 메모리 할당에 사용하는 페이지 단위의 사이즈 등등의 기본적인 정보를 가져오는 방법을 살펴보자. winbase.h 에 있는 기능을 사용하자.. 아래와 같은 구조체가 정의 되어있고.. typedef struct _SYSTEM_INFO { union { DWORD dwOemId; // Obsolete field...do not use struct { WORD wProcessorArchitecture;// x86, x64, IA-64 등을 나타냄 WORD wReserved;//사용안함 }; }; //cpu의 페이지 크기 x86과 x64 머신에서는 4096,, IA-64머신은 8192바.. 2011. 3. 3.
stl std::remove의 이해와 활용 stl std::remove의 이해와 활용 std::remove 함수는 #include 안에 포함되어있다. std::remove 함수는 각 컨테이너가 가지고있는 erase함수와 다른 동작을 보여준다. 함수의 원형은 이런 식이다. std::remove( begin, end, val ); // 범위지정... 지울 값. 여기서 착각할수 있는 부분은 std::list 의 remove 함수는 실제로 컨테이너 안에 있는 요소가 삭제가되고 list의 사이즈가 줄어든다.. 예로 std::list listTest; for ( int i=0; i 2011. 2. 18.