假设我们有以下类:
class Test {
public:
Test() {}
std::vector<int>& getIntList() {
return intList;
}
private:
std::vector<int> intList;
};
此外,我们在 main 函数中有以下代码来声明类数组:
int main(void) {
Test* test[20];
for (int i = 0; i < 20; ++i) {
test[i] = new Test();
}
}
在这些情况下,测试对象被实例化。
现在,如果我在每个类内的向量中随机附加多个项目,
在调整它们的内存大小时,可能存在碰撞每个类内每个向量的内存地址范围的机会。
在这种情况下,是否将整个“测试”对象复制到其他内存区域并调整向量的大小?或者,向量 STL 是否仅在类引用向量时复制到其他内存区域并调整大小?
完全,这样编码不是一个好主意吗?