我认为这个问题足够清楚。会auto
关键字自动检测const-或始终返回非const类型,即使存在。两个函数的两个版本(一个返回const
另一个没有)。
只是为了记录,我确实使用const auto end = some_container.end()
在我的前横路之前,但我不知道这是必要的,甚至与正常人有所不同auto
。
答案
也许你很困惑const_iterator
和const iterator
。第一个迭代在const元素上迭代,第二个完全无法迭代,因为您无法使用operators
++和 - 在上面。
请注意,您很少从container.end()
。通常您会使用:
const auto end = container.end();
for (auto i = container.begin(); i != end; ++i) { ... }