首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >汽车与汽车&康斯特

汽车与汽车&康斯特
EN

Stack Overflow用户
提问于 2021-07-14 14:23:23
回答 1查看 380关注 0票数 2
代码语言:javascript
运行
复制
auto x1 = exp1;
auto& x2 = exp2;

我是否正确地理解了用auto (x1)声明的变量永远不会是const,即使exp1const (表示ex )。返回const的函数)。with with auto&(x2)将是const,如果exp2将是const。即使汽车是一个指针。

代码语言:javascript
运行
复制
auto it = find(cont.cbegin(), cont.cend(), value);

在这里,尽管我使用cbegin和cend,但它将是非const迭代器,要成为const_iterator,我应该编写

代码语言:javascript
运行
复制
const auto it1 = find(cont.cbegin(), cont.cend(), value);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-14 14:37:10

我是否正确地理解用auto (x1)声明的变量永远不会是const

对,是这样。

使用auto&(x2)时,exp2将为const。

引用永远不是const;引用不能是cv限定的。x2可以作为 const的参考

auto = find(cont.cbegin(),cont.cend(),value);

在这里,尽管我使用cbegin和cend,但它将是非const迭代器。

it将是const_iterator类型的非const限定对象.

const autoit1= find(cont.cbegin(),cont.cend(),value);

it1将是const_iterator类型的const限定对象。

通过const_iterator (通常)向您提供对const的引用,因此不能修改指定的对象。

不能(通常)修改const对象。因此,例如,不能增加const限定迭代器。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68379890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档