gui*_*nny 4 c++ containers iterator
以下问题刚刚从头脑中射出.对于c ++ stl迭代器,通常的做法是使用类似的东西:
for (iterator it=obj.begin(); it!=obj.end(); it++)
Run Code Online (Sandbox Code Playgroud)
我想知道的是,实际上obj.begin()可以告诉"它"何时停止哪个会使for循环看起来像:
for (iterator it=obj.begin(); !it.end(); it++)
Run Code Online (Sandbox Code Playgroud)
好处是使迭代器更加自包含,并且可以在容器类中保存(迭代器end()).
有时你想做一些事情而不是遍历容器的整个内容.例如,您可以创建一对仅迭代容器前半部分的迭代器.因此,有一个单独的对象来表示结束是更灵活的,因为它允许用户更多地控制放置范围结束的位置.
你是对的,对于迭代所有事情的最常见情况来说,这有点不方便.但是,C++ 11提供了一个基于for循环的范围,这使得在整个容器上循环非常容易,因此与编程中的许多内容一样,实际上只需选择正确的结构来最好地表达您的意图.
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |