stl中是否有一个noop迭代器?

Adr*_*ian 2 c++ stl

如果我想在迭代器范围内复制相同的值,我认为在没有Noop迭代器的地方传递值很容易,并且当它递增时,它就不会移动到任何地方。这将允许使用现有的std::copystd::copy_if算法。

但是,我似乎找不到这种野兽。我要自己滚吗?

Max*_*kin 6

使用std::fillstd::fill_n算法。

一些容器(例如std::vector<>std::list<>)具有一个带有大小和初始化程序的构造函数:

std::vector<int> v(10, 42); // 42 is the initializer
v.resize(20, 42); // Initialize new elements with 42.
Run Code Online (Sandbox Code Playgroud)

  • 如果将“ v(10,42)”更改为“ v {10,42}”,则最终将得到大小为2的向量以及元素10和42。 (2认同)
  • `std :: initializer_list`,构造函数中最危险的类型,尤其是在改装到现有容器中时 (2认同)