#include <iostream>
#include 
<list>
#include 
<vector>
using namespace std;

#pragma pack(push, 
1)
struct Node
{
    
int        a;
    char    b;
    
double    c;
    char    d[
10];
};
#pragma pack(pop)


list
<Node>        lstNode;
vector
<Node>    vecNode;
Node            node[
20];
int a;
int main()
{
    cout 
<< sizeof(a) << endl;
    cout 
<< " sizeof(Node) : " << sizeof(Node) << "  sizeof(node) : " << sizeof(node) << endl;
    
    
for (int i = 0; i < 20; i++)
    {
        node[i].a 
= i;
        node[i].b 
= 'a';
        node[i].c = 123.321;
        strcpy(node[i].d,
"123");
        lstNode.push_back(node[i]);
        vecNode.push_back(node[i]);
    }
    cout 
<< " sizeof(node) " << sizeof(node) << endl;
    cout 
<< " sizeof(list) " << sizeof(list<Node><< endl ;
    cout 
<< " sizeof(lstNode) " << sizeof(lstNode) << " lstNode.size() " << lstNode.size() << endl;
    cout 
<< " sizeof(vector) " << sizeof(vector<Node><< endl;
    cout 
<< " sizeof(vecNode) " << sizeof(vecNode) << " vecNode.size() " << vecNode.size() << endl;
    return 
0;
}


结果是:
 


为什么,lstNode的大小也是和list类型的大小一样~~~~vecNode何vector类型一样,
难道他里面保存的是指向他包含元素的指针。。。不是何数组一样。。。。

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理