大佬教程收集整理的这篇文章主要介绍了auto 和 auto& 和 const,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
auto x1 = exp1;
auto& x2 = exp2;
我是否正确理解使用 auto
(x1) 声明的变量永远不会是 const
,即使 exp1
是 const
(例如,一个返回 { {1}})。如果 exp2 为 const,则 with const
(x2) 为 const。即使 auto 是一个指针。
auto&
这里尽管我使用 cbegin 和 cend 它将是非常量迭代器,并且要成为 const_iterator 我应该写
auto it = find(cont.cbegin(),cont.cend(),value);
我是否正确理解使用 auto (x1) 声明的变量永远不会是 const
正确。
当使用 auto&(x2) 时,如果 exp2 为常量,则为常量。
引用永远不是常量;引用不能是 cv 限定的。 x2
可以是 对 const 的引用。
auto it = find(cont.cbegin(),cont.cend(),value);
这里尽管我使用 cbegin 和 cend 它将是非常量迭代器
it
将是 const_iterator 类型的非 const 限定对象。
const auto it1 = find(cont.cbegin(),value);
it1
将是 const_iterator 类型的 const 限定对象。
通过 const_iterator 间接(通常)为您提供对 const 的引用,因此您无法修改指向的对象。
const 对象(通常)不能被修改。因此,例如,您不能增加 const 限定的迭代器。
以上是大佬教程为你收集整理的auto 和 auto& 和 const全部内容,希望文章能够帮你解决auto 和 auto& 和 const所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。