※ 요약
※ 함수 원형
※ C++03 기본 자료형 예제
아래는 push_back을 이용해 요소를 추가하는 간단한 예제다.
아래 이미지를 보면 vecInt와 vecDouble, vecInt1에 각각 5와 6, 9, 13, 5.0, 6.0이 잘 추가된 것을 확인할 수 있다.
※ C++11 기본 자료형 예제
C++11에서는 initializer_list라는 클래스 템플릿이라는 걸 제공해주는데, 아래와 같이 컨테이너를 선언과 동시에 편하게 초기화할 수 있다. 또 달라진 점으로는 push_back(4)인데, 리터럴 상수인 4는 move semantics를 통해 T&& value를 인자로 받는 함수가 호출된다. 이전 버전의 C++이었다면 push_back( const T& value )가 호출 되었을 것이다.
아래와 같이 값이 잘 추가되었다.
※ 사용자 정의형 예제
아래 예제는 사용자 정의형(구조체나 클래스)에 대한 예제다. 위에 있는 예제들처럼 push_back에 대한 예제이며 기본 데이터형이 아닌 사용자 정의형 데이터를 추가한다는 것만 빼면 위의 예제들과 다를게 없으므로 따로 설명은 하지 않겠다.
아래처럼 값이 잘 들어갔다.
※ 예제
위의 예제들은 어디까지나 설명을 위해 급조한 예제들이고, 아래 소스는 실제 사용예이다. 아래 소스에 대해 간단히 설명하자면 select 쿼리를 날리고 조회된 데이터 행의 개수에 따라 vector의 메모리 공간을 reserve 함수를 통해 미리 예약하고 데이터를 push_back하는 예제이다. 멤버함수 reserve에 대해서는 나중에 알아보도록 하겠다.
'STL - Containers > vector' 카테고리의 다른 글
[C++ STL] std::vector - emplace_back (3) | 2016.04.15 |
---|---|
[C++ STL] std::vector 주요 멤버 함수 목록 (0) | 2015.11.23 |
[C++ STL] std::vector 개요 (3) | 2015.11.10 |