附加时是否保留了向量元素的顺序?

时间:2014-06-25 09:14:26

标签: c++ vector

正如标题已经表明我想知道向量元素的内部顺序是否只能通过将元素附加到向量来改变

这里我指的是订单更改没有重新分配的可能性,涉及两种不同的情况:

  1. 存储指向类的指针,如:

    vector<A*> vec;    //for some class A;
    vec.push_back(new A());
    
  2. 存储类的元素,例如:

    vector<A> vec;    //for some class A;
    vec.push_back(A());
    
  3. 如果订单可能发生变化,是否有可能注意到发生了这样的变化(例如设置了一些标志,......)?

    是否也可以注意到是否重新分配了载体?

    是否有其他容器(动态大小)可以保留任何元素的内部顺序(如列表)?

    非常感谢提前!

1 个答案:

答案 0 :(得分:3)

  

附加时是否保留了向量元素的顺序?

  

是否有其他容器(动态大小)可以保留任何元素的内部顺序(如列表)?

C ++中的所有sequence containers都保留了内部顺序。所有其他人不一定(特别是关联容器)。