C++数组和向量是保持值还是引用?

5Yr*_*DBA 0 c++

  1. 在C++中,我们有值类型(int,long,float,...)和引用类型(class,struct,...).

  2. 对于值类型,Array和Vector保存实际值;

  3. 对于引用类型,Array和Vector仅保存对这些对象的引用;

  4. 因此,当我们将引用类型放入Array和Vector时,我们需要确保这些对象存在足够长的时间(在整个过程中有效)以避免异常/错误;

我的上述陈述是否正确?如果我错了,请纠正我.

sep*_*p2k 9

  1. 不能.任何类型都可以通过值或引用传递(也可以在堆栈或堆上创建任何类型,尽管您没有问过).

  2. 对于任何类型的数组和向量保持实际值.因此,存储在向量中的任何类型都需要是可复制构造的.

  3. 见2.

  4. 不.如果您显式创建指针向量然后存储指向对象的指针,则情况就是这样.