如何迭代被称为?

时间:2011-06-10 12:04:16

标签: language-agnostic iterator const-iterator

我想表达一个迭代器是const(即你不能递增或递减它),但它产生的东西是非const的:

iterator const it = foo.begin();
it++; // error
*it = ...; // not an error

如果iterator是指针,我可以说:

  

指针 //迭代器

     

指向 //它产生的东西

但如果它不是指针,我不确定。我想过将container用作“指针”替换,但是迭代器根本不依赖于容器。例如,输入迭代器可以绑定到文件或STDIN。以下是否有效并被其他人使用?

  

迭代器 //迭代器

     

iteratoo //它产生的东西

我很高兴获得任何指导!

6 个答案:

答案 0 :(得分:3)

“价值”是否太明显(或错误)?毕竟,你想从迭代器中得到的是值。如果你指的是你正在迭代的一组值,那么我认为“序列”不是一个糟糕的选择。

答案 1 :(得分:2)

自从我们在聊天中讨论过这个以来,就发布了这个。

使用胜利者/受害者设置。

Iterator / Iteratim

或者你可以使用Iteratee。

答案 2 :(得分:2)

- 和后缀在英语中用于“要对其进行操作”,例如OED以“em> multiplicand 为例来表示'要加倍的东西',和操作数表示'要操作的东西'。

那么 iterand 对'要迭代的东西'怎么样?

答案 3 :(得分:2)

如果我说了很多话,我会说“referand”,或者“如果我只是说过一次,那就是迭代者指出的事情”,并担心有人会认为我在谈论的是一个混乱C ++参考。

我也说指针的“referand”(不是“指针”)。如果人们没有意识到指针和迭代器都是两种引用,尽管不是专门的C ++引用,它们总是可以接受教育。

答案 4 :(得分:1)

我认为迭代器的任何衍生物都不是 - iteratim iteree iteratee 或< strong> iterand 或其他任何合适的东西。为什么?因为迭代器不会 执行 任何指向它的东西。其他答案建议的词语暗示正在迭代 iteratim iteratee 等。但事实并非如此。有人指出。指针指向指针。迭代器不会迭代迭代。

所以我认为最好使用指针这个词。

答案 5 :(得分:0)

正在迭代或不迭代的集合元素是一个项目。