为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不能做一个参考向量?

为什么我不能做一个参考向量?

C++
小唯快跑啊 2019-06-27 17:00:50
为什么我不能做一个参考向量?当我这么做的时候:std::vector<int> hello;一切都很好。然而,当我把它变成一个参考向量时:std::vector<int &> hello;我会犯可怕的错误错误C 2528:“指针”:指向引用的指针是非法的我想把一堆对结构的引用放到向量中,这样我就不用去干涉指针了。为什么向量会对此大发雷霆?我唯一的选择是使用指针向量吗?
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

像向量一样的容器的组件类型必须是可转让..引用是不可分配的(您只能在声明它们时初始化它们一次,以后也不能让它们引用其他东西)。其他不可分配的类型也不允许作为容器的组件。vector<const int>是不允许的。


查看完整回答
反对 回复 2019-06-27
?
慕神8447489

TA贡献1780条经验 获得超1个赞

是的,你可以,去找std::reference_wrapper,它模拟引用,但是可分配的,也可以被“重置”。


查看完整回答
反对 回复 2019-06-27
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

根据其性质,引用只能在创建时设置;也就是说,以下两行具有非常不同的效果:

int & A = B;   // makes A an alias for BA = C;         // assigns value of C to B.

此外,这是非法的:

int & D;       // must be set to a int variable.

但是,在创建向量时,无法在创建时为其项赋值。从本质上讲,你只是做了大量的最后一个例子。


查看完整回答
反对 回复 2019-06-27
  • 3 回答
  • 0 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信