我们在使用STL中的vector构造结构体的时候或者看别人的代码时如果出现以下的情况,我们想知道其内部构造是怎么样的(不说了,直接上代码上图):
typedef struct{
double x,y;
vector<int> adjnodes;
vector<int> adjweight;
bool isborder;
vector<int> gtreepath;
}Node;
for(int i=0;i<9;i++){
Node node = { x, y };
Nodes.push_back(node);
}
每次加进Nodes的是一个node的结构体,随着每次循环,node都会被新建,所以之前加进去的那些数据内存空间是怎么一个形式存在的呢?
为此我调试了一些结果如下:
从图中我们可以看到,vector存结构体的方式还是会默认下标的方式来进行存储(除非有指定的说明)。
每一个结构体的数据内容都会按照其相应的大小对其进行内存空间的分配。