一个vector<vector<int>>
可能看起来像这样存储:
+-+-+-+
|b|e|c| vector<vector<int>
+-+-+-+
| | |
| | +-------------------+
| | |
| +---------------+ |
| | |
V V V
+-+-+-+-+-+-+-+-+-+
|b|e|c|b|e|c|b|e|c| 3x vector<int>
+-+-+-+-+-+-+-+-+-+
| | | | | | | | |
| | | | | | | | +-------------+
| | | | | | | | |
| | | | | | | +-------+ |
| | | | | | | | |
| | | | | | V V V
| | | | | |+-+-+-+-+-+
| | | | | ||i|i|i|i|i| 5x int
| | | | | |+-+-+-+-+-+
| | | | | |
| | | | +-+---+
| | | | |
| | | V V
| | |+-+-+-+-+
| | ||i|i|i|i| 4x int
| | |+-+-+-+-+
| | |
| +-+-----------+
| |
V V
+-+-+-+-+-+-+-+-+
|i|i|i|i|i|i|i|i| 8x int
+-+-+-+-+-+-+-+-+
这里b
表示begin()
poiner,e
表示end()
指针和c
表示capacity()
指针。
你看,那行是不在内存中连续,你会从一个矩阵结构的期望。每个矢量(内部和外部矢量)都会处理它自己的内存分配。外部矢量不关心它的元素在做什么。
好的油漆:) –
*普通的实施方案中有这样在大约12个字节。* =>或在64位体系结构24个字节(这是更可能是什么OP与玩弄)。 –