Skip to content

Latest commit

 

History

History
76 lines (60 loc) · 1.55 KB

ranges_copy_n.md

File metadata and controls

76 lines (60 loc) · 1.55 KB

copy_n

  • algorithm[meta header]
  • std::ranges[meta namespace]
  • function template[meta id-type]
  • cpp20[meta cpp]
namespace std::ranges {
  template<input_iterator I, weakly_incrementable O>
    requires indirectly_copyable<I, O>
  constexpr copy_n_result<I, O> copy_n(I first, iter_difference_t<I> n, O result);
}
  • copy_n_result[link ranges_in_out_result.md]
  • input_iterator[link /reference/iterator/input_iterator.md]
  • weakly_incrementable[link /reference/iterator/weakly_incrementable.md]
  • indirectly_copyable[link /reference/iterator/indirectly_copyable.md]

概要

指定された数の要素をコピーする。

効果

0 以上 n 未満であるそれぞれの i について、*(result + i) = *(first + i) を行う。

戻り値

copy_n_result {
  .in  = first + n,
  .out = result + n,
}
  • copy_n_result[link ranges_in_out_result.md]

計算量

正確に n 回代入が行われる。

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

int main() {
  std::vector<int> v = { 3, 1, 5, 2, 4 };
  std::ranges::copy_n(v.begin(), 5, std::ostream_iterator<int>(std::cout, "\n"));
}
  • std::ranges::copy_n[color ff0000]

出力

3
1
5
2
4

バージョン

言語

  • C++20

処理系

参照