[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