[内存数据分析] C++ STL容器 list

初始化容器
list int_list;
for (size_t i = 0; i < 10; i++)
    int_list.push_back(i);
int_list.push_front(-1);
读取容器指针
>dd &int_list
0x00CFFB60  0111e8e0 0111edb0 0000000b 
- std::allocator >
0111e8e0
- std::_List_val >
0111edb0    _Myhead     std::_List_node *       数据双向链表
0000000b    _MySize     unsigned int                        元素数量
std::_List_node结构
std::_List_node
_Next   std::_List_node *   下个节点
_Prev   std::_List_node *   上个节点
_Myval  int                             值
读取容器的数据链表
>dd 0x0111edb0 -> 根节点
0x0111EDB0  0111e950 0111e8a8 cdcdcdcd
>dd 0x0111e950 -> 0xFFFFFFFF 是首个元素
0x0111E950  0111eb10 0111edb0 ffffffff
>dd 0x0111eb10
0x0111EB10  0111ee90 0111e950 00000000
>dd 0x0111ee90
0x0111EE90  0111ed78 0111eb10 00000001
>dd 0x0111ed78
0x0111ED78  0111e918 0111ee90 00000002
>dd 0x0111e918
0x0111E918  0111ea30 0111ed78 00000003
>dd 0x0111ea30
0x0111EA30  0111eec8 0111e918 00000004
>dd 0x0111eec8
0x0111EEC8  0111eaa0 0111ea30 00000005
>dd 0x0111eaa0
0x0111EAA0  0111e800 0111eec8 00000006
>dd 0x0111e800
0x0111E800  0111ea68 0111eaa0 00000007
>dd 0x0111ea68
0x0111EA68  0111e8a8 0111e800 00000008
>dd 0x0111e8a8
0x0111E8A8  0111edb0 0111ea68 00000009

你可能感兴趣的:([内存数据分析] C++ STL容器 list)