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

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

当我这么做的时候:

std::vector<int> hello;

一切都很好。然而,当我把它变成一个参考向量时:

std::vector<int &> hello;

我会犯可怕的错误

错误C 2528:“指针”:指向引用的指针是非法的

我想把一堆对结构的引用放到向量中,这样我就不用去干涉指针了。为什么向量会对此大发雷霆?我唯一的选择是使用指针向量吗?


小唯快跑啊
浏览 456回答 3
3回答

鸿蒙传说

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

慕神8447489

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

扬帆大鱼

根据其性质,引用只能在创建时设置;也就是说,以下两行具有非常不同的效果:int&nbsp;&&nbsp;A&nbsp;=&nbsp;B;&nbsp;&nbsp;&nbsp;//&nbsp;makes&nbsp;A&nbsp;an&nbsp;alias&nbsp;for&nbsp;BA&nbsp;=&nbsp;C;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;assigns&nbsp;value&nbsp;of&nbsp;C&nbsp;to&nbsp;B.此外,这是非法的:int&nbsp;&&nbsp;D;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;must&nbsp;be&nbsp;set&nbsp;to&nbsp;a&nbsp;int&nbsp;variable.但是,在创建向量时,无法在创建时为其项赋值。从本质上讲,你只是做了大量的最后一个例子。
打开App,查看更多内容
随时随地看视频慕课网APP