如果您正在循环通过容器:
typedef std::vector<std::unique_ptr<BaseClass>> Container;
Container container;
for(Container::const_iterator element = container.begin(); element != container.end(); element++)
{
//Read through values
}
而不是使用typedef而是决定使用auto:
std::vector<std::unique_ptr<BaseClass>> container;
for(auto element = container.begin(); element != container.end(); element++)
{
//Read through values
}
假设你没有改变这些值,那么auto关键字是否使用const迭代器而非const const?
这个问题最重要的是好奇心,我认为这是现实生活场景中适用问题的唯一原因是,如果你需要传达的话,你不能改变另一个人的价值观。代码。
答案 0 :(得分:5)
1)使用cbegin
和cend
来明确使用const迭代器。
begin()
时, 2)end()
和const_iterator
返回const