[C++] vector.insert 멤버함수를 이용해 두 벡터 연결하기

    반응형

    [C++] insert member function

    *개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다.

     

    _content

    #1 insert member function

    #2 두 벡터 연결하기

     

    _Related posts

    [C++ STL] Vector Container 사용법

     

    _reference

    https://cplusplus.com/reference/vector/vector/insert/


    #1 insert member function

    C++ STL vector는 특정 원소 혹은 특정 범위의 원소들을 벡터의 원하는 위치에 추가할 수 있도록 도와주는 insert 멤버 함수를 제공한다.

    iterator insert (const_iterator position, const value_type& val);

    position : 원소를 추가 할 위치

    val : 추가 할 원소

     

    다음은 vector의 가장 뒤에 원소 4를 추가하는 예제이다.

    #include <iostream>
    #include <vector>
    using namespace std;
    int main(){
    	vector<int> v1 = {1, 2, 3};
    	cout << "Before Insert - ";
    	for(const auto& i : v1) cout << i << " ";
    	cout << '\n';
    	
    	v1.insert(v1.end(), 4);
    	cout << "After Insert - ";
    	for(const auto& i : v1) cout << i << " ";
    	return 0;
    }
    Before Insert - 1 2 3
    After Insert - 1 2 3 4

    #2 두 벡터 연결하기

    앞서 소개한 insert 멤버 함수는 다양한 형태로 오버라이딩 되어 있다.

    그 중 원하는 위치에 특정 범위의 원소들을 넣을 수 있도록 설계된 다음과 같은 템플릿이 존재한다.

    template <class InputIterator>
    iterator insert (const_iterator position, InputIterator first, InputIterator last);

    position : 원소를 추가할 위치

    first : 추가할 원소들의 시작 위치

    last : 추가할 원소들의 마지막 위치

     

    다음은 insert 멤버 함수를 사용해 v1 벡터와 v2 벡터를 연결한 예제이다.

    #include <iostream>
    #include <vector>
    using namespace std;
    int main(){
    	vector<int> v1 = {1, 2, 3};
    	vector<int> v2 = {4, 5, 6};
    	
    	cout << "Before Concat : ";
    	for(const auto& i : v1) cout << i << " ";
    	cout << '\n';
    	
    	vector<int>::iterator it = v1.end();
    	v1.insert(it, v2.begin(), v2.end());
    	cout << "After Concat : ";
    	for(const auto& j : v1) cout << j << " ";
    	
    	return 0;
    }
    Before Concat : 1 2 3
    After Concat : 1 2 3 4 5 6
    반응형

    댓글

    Designed by JB FACTORY