struct struct1
{
vector<unsigned> vec1;
};
void main()
{
vector<struct1> vecStruct1;
struct1 obj1Struct1;
struct1 obj2Struct1;
vecStruct1.push_back(obj1Struct1);
vecStruct1.push_back(obj2Struct1);
}
现在,如果我调整对象
vec1
的struct1
的vecStruct1[0]
的大小,那么vecStruct1
也会重新调整大小的情况,即是否会导致在vecStruct1
中重新分配,即&vecStruct[0]
和&vecStruct[1]
不会调整vec1
的vecStruct1[0]
大小后是否有所不同? 最佳答案
不,vector
将其元素存储在堆中,而不是存储在结构本身内部,因此,vector
本身在调整大小时永远不会增长,增长的是vector
指向的数据缓冲区。