Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 벡터에 다른 벡터를 추가하는 방법

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() 메서드를 활용하면 원하는 위치에 자유롭게 벡터를 합칠 수 있습니다.