Функция copy_n
Функция copy_n копирует n элементов
из исходного диапазона, начиная с указанного
итератора, в диапазон назначения. Первым
параметром функция принимает итератор начала
исходного диапазона, вторым - количество
элементов для копирования, а третьим -
итератор начала диапазона назначения.
Функция возвращает итератор, указывающий на
элемент в диапазоне назначения, следующий
за последним скопированным элементом.
Синтаксис
template <class InputIt, class Size, class OutputIt>
OutputIt copy_n(InputIt first, Size count, OutputIt result);
Пример
Давайте скопируем 3 элемента из вектора
{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_n(src.begin(), 3, dst.begin());
for (int el : dst) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3
Пример
Давайте скопируем 2 элемента из строки
"abcde" начиная со второго символа:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string src = "abcde";
string dst(2, ' ');
copy_n(src.begin() + 1, 2, dst.begin());
cout << dst << endl;
return 0;
}
Результат выполнения кода:
"bc"
Пример
Давайте скопируем 5 элементов из массива
в вектор и выведем результат:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int src[] = {1, 2, 3, 4, 5};
vector<int> dst(5);
copy_n(src, 5, dst.begin());
for (int el : dst) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5
Смотрите также
-
функция
copy,
которая копирует диапазон элементов -
функция
copy_if,
которая копирует элементы, удовлетворяющие условию -
функция
copy_backward,
которая копирует диапазон в обратном порядке -
функция
move,
которая перемещает диапазон элементов