【发布时间】:2012-02-21 14:45:09
【问题描述】:
假设我有:
vector<T *> vect;
我知道这不是显而易见的方法,但我有一个 API 可以做到这一点,所以我不能决定改用 vector<T>。
所以当我将对象放入其中时:
vect.push_back(new T);
此代码是否会确保该向量是 aligned 连续的,因为它是一个指针向量?这个容器会决定new 操作符的行为吗?
编辑:
我还需要在这些上拨打delete 吗?
【问题讨论】:
-
你对这种情况下的aligned这个词有什么理解?
-
“决定
new运算符的行为”是什么意思? -
分配的对齐将不是向量的责任,因为您执行分配而不是向量。它只是用来存放您放入其中的指针。
-
好吧,我的意思不是对齐,而是连续,我知道这不是同一个意思,但我想知道分配的对象是否会像数组一样放置
-
所以你问的是两个新语句是否会将分配的对象放在彼此的正下方?我相当确定分配器可以随意处理这个问题,并且对此没有任何保证。我知道确保它们相互跟随的唯一方法是分配一个数组。