Nic*_*age 2 c++ loops vector auto c++11
如果您正在循环通过容器:
typedef std::vector<std::unique_ptr<BaseClass>> Container;
Container container;
for(Container::const_iterator element = container.begin(); element != container.end(); element++)
{
//Read through values
}
Run Code Online (Sandbox Code Playgroud)
而不是使用typedef你决定使用auto:
std::vector<std::unique_ptr<BaseClass>> container;
for(auto element = container.begin(); element != container.end(); element++)
{
//Read through values
}
Run Code Online (Sandbox Code Playgroud)
假设你不改变这些值,auto关键字是否使用const迭代器而非const const?
这个问题最重要的是好奇心,我唯一可以看到这是现实生活场景中适用的问题的唯一原因是,如果你需要传达的话,那就是你不要将价值观改变为另一个从事代码工作的人.
1)使用cbegin
和cend
明确使用const迭代器.
2)begin()
并在声明方法时end()
返回const_iterator
const