1.std::vector
共占12字节,为3个指针,分别指向开头,数据的结尾,预留空间的结尾
example:
std::vector<int> v {2,3,4};
则
size(v) == 12
&v == 0x1000(右边为可能值)
[0x1000] == 0x2000(指向开头)
[0x1004] == 0x200C(指向数据结尾)
[0x1008] == 0x2010(指向预留空间结尾)(右边为可能值)
[0x2000] == 2
[0x2004] == 3
[0x2008] == 4
example:
std::forward_list<int> v {2,3};
则
size(v) == 4
v == 0x1000(右边为可能值)
[0x1000] == 0x2000(指向下一个结构体)(右边为可能值)
[0x1004] == 2(数据)
[0x2000] == 0(结尾)
[0x2004] == 3(数据)
example:
std::list<int> v {2,3};
则
size(v) == 8
&v == 0x1000(右边为可能值)
[0x1000] == 0x3000
[0x1004] == 2(结点个数)
[0x3000] == 0x4000(头结点)
[0x3004] == 0x5000
[0x3008] == unused
[0x4000] == 0x5000(第一个结点)
[0x4004] == 0x3000
[0x4008] == 2
[0x5000] == 0x3000(第二个结点)
[0x5004] == 0x4000
[0x5008] == 3