加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 自动引用和迭代器

发布时间:2020-12-16 10:12:35 所属栏目:百科 来源:网络整理
导读:如果调用std :: vector :: begin()但将返回的迭代器分配给引用会发生什么?为什么它可以工作,迭代器值存储在哪里? std::vectorint v;auto a = v.begin(); //I assume iterator is stored on the stack in variable "a".auto b = v.begin(); //What happens
如果调用std :: vector :: begin()但将返回的迭代器分配给引用会发生什么?为什么它可以工作,迭代器值存储在哪里?

std::vector<int> v;
auto a = v.begin(); //I assume iterator is stored on the stack in variable "a".
auto& b = v.begin(); //What happens here?

解决方法

这条线

auto& b = v.begin();

是一个错误,因为v.begin()返回一个临时的,你不能将临时绑定到非const引用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读