gpt4 book ai didi

c++ - 'auto' 关键字是否知道何时使用 const 迭代器?

转载 作者:搜寻专家 更新时间:2023-10-31 00:36:30 25 4
gpt4 key购买 nike

如果你正在这样循环一个容器:

typedef std::vector<std::unique_ptr<BaseClass>> Container;
Container container;

for(Container::const_iterator element = container.begin(); element != container.end(); element++)
{
//Read through values
}

您决定使用 auto 而不是使用 typedef:

std::vector<std::unique_ptr<BaseClass>> container;

for(auto element = container.begin(); element != container.end(); element++)
{
//Read through values
}

假设您不改变这些值,auto 关键字是否在非 const 迭代器上使用 const 迭代器?

这个问题比任何事情都更让人好奇,我认为这是一个适用于现实生活场景的问题的唯一原因是,如果您需要向另一个处理代码的人传达您不会更改值。

最佳答案

1) 使用 cbegincend 来明确使用 const 迭代器。

2) 当方法声明为const时,begin()end() 返回const_iterator

关于c++ - 'auto' 关键字是否知道何时使用 const 迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21692681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com