关于 vector 中不能存放引用,这是一个在初始C++时候就应该知道的问题,但是我居然没注意,还好及时发现了。
《C++ primer》上说 vector 中不能存放引用的原因是:引用不支持一般意义上的赋值操作,而 vector中元素的两个要求是:
1.元素必须能赋值
2.元素必须能复制
int a = 1;
int c = 2;
int & b = a;
b = c;
如上述例子中 ,b = c,不是一般意义上的赋值操作,因为 b 元素时不存在的,对 b 元素取地址,取到的是 a 的地址,此处的赋值操作也会将值赋给 a,而不是 b 本身,因此,vector 的元素不能是引用
我自己试了一下,将发现在 vector 中存放引用报错的原因类似如下:
int & * p;
即,不允许定义引用类型的指针。

本文深入探讨了C++中向量为何不允许存放引用的原理,通过实例展示引用的特性与向量元素要求之间的冲突,并详细解释了这种限制背后的原因。
3265

被折叠的 条评论
为什么被折叠?



