'C++' std::assign

토스트·2025년 4월 28일

'C++' std::vector

목록 보기
3/6

1. 범위로 교체

template<class InputIterator>
void assign(InputIterator first, InputIterator last);

: 기존의 요소를 모두 삭제하고, [first, last) 범위의 요소로 교체합니다.

<예시 코드>

#include <iostream>
#include <vector>

using namespace std;

int main() {
	vector<int> vec1 = { 1, 2, 3, 4, 5, 6, 7 };
	vector<int> vec2 = { 2, 4, 6, 8, 10};

	vec1.assign(vec2.begin(), vec2.end() - 2);

	for (const int& i : vec1) {
		cout << i << ' ';
	}

	return 0;
}

결과

2. 채우기로 교체

void assign(size_type n, const value_type& val);

: 기존의 요소를 모두 삭제하고, n개의 val로 교체됩니다.

<예시 코드>

#include <iostream>
#include <vector>

using namespace std;

int main() {
	vector<int> vec = { 1, 2, 3, 4, 5, 6, 7 };

	vec.assign(5, 10);

	for (const int& i : vec) {
		cout << i << ' ';
	}

	return 0;
}

결과

3. 초기화 목록으로 교체

void assign(initializer_list<value_type> il);

: 기존의 요소를 모두 삭제하고, il의 각 요소로 교체합니다.

<예시 코드>

#include <iostream>
#include <vector>

using namespace std;

int main() {
	vector<int> vec = { 1, 2, 3, 4, 5, 6, 7 };

	vec.assign({2, 7, 9});

	for (const int& i : vec) {
		cout << i << ' ';
	}

	return 0;
}

결과

0개의 댓글