insert() 함수의 경우, 지정한 반복자 위치 다음의 모든 원소를 이동시키는 연산이 필요합니다. 필요한 경우 메모리를 새로 할당하는 작업도 수행됩니다. 원소들을 이동하는 연산 때문에 insert() 함수는 O(n)의 시간이 걸립니다. 다음 예제를 통해 벡터에서 원소를 삽입하는 방법을 살펴보겠습니다.
일단 다섯 개의 정수를 갖는 벡터를 정의하겠습니다.
std::vector<int> vec = {1, 2, 3, 4, 5};
Note ≡
벡터는 push_front() 함수를 지원하지 않습니다. 맨 앞에 새로운 원소를 추가하려면 원소 삽입 위치를 인자로 받는 insert() 함수를 사용해야 합니다.
벡터의 맨 앞에 새로운 원소를 추가하려면 insert() 함수를 다음과 같이 사용합니다.
vec.insert(int.begin(), 0);
push_back()과 insert() 함수를 사용하는 예제 코드를 좀 더 살펴보겠습니다.
std::vector<int> vec; // 비어 있는 벡터 생성: {}
vec.push_back(1); // 맨 뒤에 1 추가: {1}
vec.push_back(2); // 맨 뒤에 2 추가: {1, 2}
vec.insert(vec.begin(), 0); // 맨 앞에 0 추가: {0, 1, 2}
vec.insert(find(vec.begin(), vec.end(), 1), 4); // 1 앞에 4 추가: {0, 4, 1, 2}