vector中不能存放引用类型

简介关于 vector 中不能存放引用,这是一个在初始C++时候就应该知道的问题,但是我居然没注意,还好及时发现了。 《C++ primer》上说 vector 中不能存放引用的原因是:引用不支持一般意义上的赋值操作,而 vector中元素的两个要求是: 1.元素必须能赋值 2.元素必须能复制 int a = 1;

关于 vector 中不能存放引用,这是一个在初始C++时候就应该知道的问题,但是我居然没注意,还好及时发现了。


《C++ primer》上说 vector 中不能存放引用的原因是:引用不支持一般意义上的赋值操作,而 vector中元素的两个要求是:

1.元素必须能赋值

2.元素必须能复制

  1. int a = 1;
  2. int c = 2;
  3. int & b = a;
  4. b = c;
如上述例子中 ,b = c,不是一般意义上的赋值操作,因为 b 元素时不存在的,对 b 元素取地址,取到的是 a 的地址,此处的赋值操作也会将值赋给 a,而不是 b 本身,因此,vector 的元素不能是引用


我自己试了一下,将发现在 vector 中存放引用报错的原因类似如下:

int & * p;即,不允许定义引用类型的指针。
本文转自:https://blog.csdn.net/virtual_func/article/details/49724135