Cas*_*sey 3 c++ iterator c++14
:我使用的,而不是像功能的标准提供的功能编写包含同一类的子对象的集合,并想遍历和索引一类,通过它们first(),next(),previous(),last(),getchild(x)等。
在c ++ 14中,在所有情况下都必须实现哪些函数以使类可迭代/可索引?
功能:
begin()cbegin()rbegin()crbegin()end()cend()rend()crend()浮现在脑海中,尽管不一定全部都需要实施。也可以选择(为方便程序员):
size()empty()是否还有其他的功能,我必须实现,如预增/减或后递增/递减和数组下标运算符,或者是它真的只是begin()和end()及其变种?
如果您的容器实现begin()并将其end()作为成员函数,并且这些函数的返回类型支持pre-increment运算符,则可以在大多数情况下使用它。我能想到的重要的是:
range-for。您可以使用:
Container c;
for ( auto& item : c ) { ... }
与迭代器一起使用的函数。例:
Container c;
Item item;
std::find(c.begin(), c.end(), item);
使迭代器成为的子类std::iterator是确保它与所有标准算法兼容的最佳方法。(感谢@Adrian)。
| 归档时间: | 
 | 
| 查看次数: | 4540 次 | 
| 最近记录: |