C++에서 하나의 벡터를 다른 벡터에 추가(append)하는 작업은 insert() 메서드를 사용하면 간단하게 처리할 수 있습니다. 이 메서드는 지정한 위치에 다른 벡터의 요소들을 삽입하는 기능을 제공합니다.
알고리즘
시작
show() 함수를 선언한다.
show() 함수 내부에 벡터의 const 참조를 매개변수로 전달한다.
for (auto const& i : input)
변수 i의 값을 출력한다.
vector 타입의 vect1을 선언한다.
vect1에 값을 초기화한다.
vector 타입의 vect2를 선언한다.
vect2에 값을 초기화한다.
vect2.insert(vect2.begin(), vect1.begin(), vect1.end())를 호출하여
vect1을 vect2에 추가한다.
"결과 벡터:" 를 출력한다.
show() 함수를 호출하여 vect2의 값을 화면에 표시한다.
끝.예제 코드
아래 예제에서는 두 개의 정수형 벡터를 만든 뒤, insert()를 사용해 첫 번째 벡터의 모든 요소를 두 번째 벡터 앞에 삽입합니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void show(vector<int> const &input) {
for (auto const& i: input) {
std::cout << i << " ";
}
}
int main() {
vector<int> v1 = { 1, 2, 3 };
vector<int> v2 = { 4, 5 };
v2.insert(v2.begin(), v1.begin(), v1.end());
cout<<"결과 벡터:"<<endl;
show(v2);
return 0;
}실행 결과
결과 벡터: 1 2 3 4 5
코드 설명
v2.insert(v2.begin(), v1.begin(), v1.end()) 구문이 핵심입니다. 첫 번째 인자인 v2.begin()은 삽입 위치를 지정하고, 두 번째와 세 번째 인자인 v1.begin(), v1.end()는 복사할 요소의 시작과 끝 반복자를 나타냅니다. 따라서 v1의 모든 요소가 v2의 맨 앞에 삽입되어 최종적으로 1 2 3 4 5라는 결과가 출력됩니다.
만약 v1을 v2의 맨 뒤에 추가하고 싶다면 삽입 위치를 v2.end()로 변경하면 됩니다. 이처럼 insert() 메서드를 활용하면 원하는 위치에 자유롭게 벡터를 합칠 수 있습니다.