@specsoftdev live:.cid.8e17e9b93cabb607 specsoftdev@gmail.com
std::ranges::copy_n
Актуально для C++26.

#include <algorithm>
Актуально на 2025-06-15.


Define overload #1
template<input_iterator I, weakly_incrementable O>
requires indirectly_copyable<I, O>
constexpr ranges::copy_n_result<I, O>
    copy_n(I first, iter_difference_t<I> n, O result);

Копирует элементы из диапазона [first, first + n] в result;
Example, possible implementation



Возвращаемое значение

Вернёт два итератора {first, result}, смещенных на количество скопированных элементов.





Examples


Example 1:
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>

namespace ranges = std::ranges;


int main()
{
    std::string copyed = "world!";
    std::vector<char> result {'h', 'e', 'l', 'l', 'o', ' '};

    ranges::copy_n(copyed.begin(), 5, std::back_inserter(result));

    for (auto c : result)
        std::cout << c;
    std::cout << std::endl;
}




hello world







Changelog

C++20
Введён в стандарт.


See also

TODO

This page was last modified on 2025-06-15