Метод assign
Метод assign заменяет содержимое вектора
новыми элементами. При этом старые элементы
удаляются, а размер вектора изменяется в
соответствии с количеством новых элементов.
Метод имеет несколько перегрузок: можно
заполнить вектор n копиями одного значения,
а можно скопировать элементы из другого
контейнера, задав диапазон через итераторы.
В первом варианте мы передаем количество
элементов и само значение, во втором -
итераторы начала и конца диапазона, а в
третьем - список инициализации.
Синтаксис
vec.assign(count, value)
vec.assign(first, last)
vec.assign({a, b, c, ...})
Пример
Давайте заполним вектор 5 копиями числа
1:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3};
vec.assign(5, 1);
for (int el : vec) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 1 1 1 1
Пример
Давайте заменим содержимое вектора элементами другого вектора, передав итераторы начала и конца диапазона:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> source = {1, 2, 3, 4, 5};
vector<int> vec = {9, 9, 9};
vec.assign(source.begin(), source.end());
for (int el : vec) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5
Пример
Давайте заполним вектор элементами из списка инициализации:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {9, 9, 9};
vec.assign({1, 2, 3, 4, 5});
for (int el : vec) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5