huolong blog

C++踩坑笔记

vector中不能存放引用

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

  1. 元素必须能赋值。
  2. 元素必须能复制。

对引用赋值会使得引用指向的对象被修改,而不是引用本身被修改。 同理在标准库提供的容器中的array、list等都不可以将引用作为容器元素,如果必须要实现类似的效果,可以将指针作为容器元素。