Bjarne的例子没有编译。它不能编译,除非他们定义 std::fill 在C ++ 0x中有所不同。也许它来自于一个特殊的版本 std::fill 可能需要一个函数,但它的实际版本(根据N3242第25.1节)需要一个 宾语 ,而不是一个功能。它将该对象复制到列表的每个元素中。这就是那个人想做的事情。
std::fill
你正在寻找的功能是 std::generate 。
std::generate
试试这个:
for_each(indices.begin(), indices.end(), [&count](int& it) { it = ++count; });
it 目前迭代的向量内容,并通过引用。
it