본문 바로가기

STL - Containers/vector

[C++ STL] std::vector - emplace_back ※ 요약 std::vector의 멤버 함수인 emplace_back은 C++11부터 추가된 멤버 함수로써 push_back과 같이 vector의 요소 끝에 원소를 추가하는 함수이다. 두 함수의 가장 큰 차이점은, push_back과 같은 삽입 함수들은 삽입할 객체를 받지만 emplace_back과 같은 생성 삽입 함수는 삽입할 객체의 생성자를 위한 인자들을 받아 std::vector 내에서 직접 객체를 생성하여 삽입하므로 임시 객체의 생성과 파괴, 복사(혹은 move)를 하지 않아도 되어 성능상 더 유리하다는 것이다.필자가 전에 작성한 push_back도 꼭 읽어보길 바란다. ※ 함수 원형 template< class... Args > void emplace_back( Args&&... args ); e.. 더보기
[C++ STL] std::vector - push_back ※ 요약 std::vector의 멤버 함수인 push_back에 대한 내용이다. 멤버 함수 push_back은 vector의 끝에 요소를 추가할때 사용하는 함수며, 이번 포스팅에서는 C++03과 C++11에서의 사용방법에 대해 간단히 알아보도록 하겠다. 참고로 아래 내용은 vector의 특성을 알고 있다고 전제하고 진행하니 vector의 특성을 잘 모르면 이 게시물을 참고하기 바란다. 또 push_back과 같은 기능을 하지만 성능상 더 유리한 emplace_back에 대한 내용도 정리한게 있으니 꼭 읽어보기 바란다. ※ 함수 원형void push_back( const T& value );void push_back( T&& value ); //C++11 push_back의 함수 원형은 C++03때까지 하.. 더보기
[C++ STL] std::vector 주요 멤버 함수 목록 ※ 요약 std::vector의 주요 멤버 함수 목록이다. 오버로딩 되는 항목들에 대해서 모두 넣지 않았지만 대략적인 설명을 할 것이므로 큰 문제는 없을 것이다. 또 한 C++03과 C++11의 구분을 색으로 할 것이며, 추후에 추가되는 C++14, C++17에 대해서도 추가하도록 하겠다. std::vector의 본격적인 사용법을 알아보기 전에 한 번 훑어보면 도움이 될 것이다. ■ - C++03 ■ - C++11 분 류 멤버 함수 설 명 Iterators begin 첫 번째 원소를 가리키는 반복자를 리턴한다. cbegin 첫 번째 원소를 가리키는 상수 반복자를 리턴한다. end 마지막 원소를 가리키는 반복자를 리턴한다. cend 마지막 원소를 가리키는 상수 반복자를 리턴한다. rbegin 역 순차열의 .. 더보기
[C++ STL] std::vector 개요 ※ std::vector 요약 필자가 std::map과 함께 가장 많이 사용하는 시퀀스 컨테이너 std::vector에 대한 설명이다. std::vector는 동일 타입의 자료 집합으로써 흔히 배열에 비유를 많이 한다. 또한 템플릿 기반이므로 임의 타입을 요소로 가질 수 있으며, 요소 개수에 따라 동적으로 메모리를 관리한다. 다른 컨테이너들에 비해 구조가 단순하고 사용 방법이 쉬우며 속도도 빠른편이다, 또 실용적이라 활용 빈도가 높다. ※ std::vector의 특징 - 배열을 대체할 수 있다. - 동일 타입의 자료 집합이며 각 요소는 연속된 위치에 배치된다. - 연속된 위치에 배치되므로 임의 위치를 빠른 속도로 액세스 할 수 있다. - 최상위 레벨의 임의 접근 반복자를 제공하므로 STL의 거의 모든 알.. 더보기