Функция copy
Функция copy копирует элементы из исходного диапазона
в целевой диапазон. Первым и вторым параметрами мы передаём
итераторы начала и конца исходного диапазона, а третьим -
итератор начала целевого диапазона, куда будут скопированы
элементы. Функция возвращает итератор на элемент в целевом
диапазоне, следующий за последним скопированным.
Синтаксис
copy(first, last, result)
Пример
Давайте скопируем все элементы вектора в другой вектор:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> src = {1, 2, 3, 4, 5};
vector<int> dst(5);
copy(src.begin(), src.end(), dst.begin());
for (int el : dst) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5
Пример
Давайте скопируем только часть элементов вектора, начиная со второго и заканчивая четвёртым:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> src = {1, 2, 3, 4, 5};
vector<int> dst(3);
copy(src.begin() + 1, src.begin() + 4, dst.begin());
for (int el : dst) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
2 3 4
Пример
Давайте скопируем элементы вектора в вектор строк:
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
vector<string> src = {"a", "b", "c", "d", "e"};
vector<string> dst(5);
copy(src.begin(), src.end(), dst.begin());
for (string el : dst) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
"a b c d e"
Смотрите также
-
функция
copy_if,
которая копирует элементы, удовлетворяющие условию -
функция
copy_n,
которая копирует заданное количество элементов -
функция
copy_backward,
которая копирует элементы в обратном порядке -
функция
move,
которая перемещает элементы из одного диапазона в другой