正如标题已经表明的那样,我想知道 vector 元素的内部顺序是否可以仅通过向 vector 附加元素来改变。
这里我指的是有和没有重新分配的订单更改的可能性,涉及两种不同的情况:
存储指向类的指针,例如:
vector<A*> vec; //for some class A; vec.push_back(new A());
存储类的元素,例如:
vector<A> vec; //for some class A; vec.push_back(A());
如果顺序可能会发生变化,是否有可能注意到发生了这种变化(例如设置了一些标志,...)?
是否也可以注意到 vector 是否被重新分配?
是否有其他容器(大小动态)可以明确保留任何元素(如列表)的内部顺序?
非常感谢!
最佳答案
Is order of vector elements preserved when appending?
是的。
Are there other containers (dynamic in size) which preserve definitely the internal order of any elements (like a list)?
全部sequence containers在 C++ 中保留内部顺序。所有其他的不一定(尤其是关联容器)。
关于c++ - 附加时是否保留 vector 元素的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24404643/