如果我有一个向量数组,由于数组的连续存储性质,向量的大小调整能力会受到限制吗?
问问题
120 次
3 回答
2
是的,但不是你想的那样。
向量必须为其内容找到连续的地址空间。内存碎片可能会导致最大的连续块小于总可用内存。并且拥有许多向量会使碎片更有可能。
于 2012-06-13T01:37:23.823 回答
1
不; 在内部,向量保存指向内存块的指针,而不是块本身。
于 2012-06-13T01:34:47.527 回答
0
resize
根本不会影响数组的内存。向量有一个指向实际存储的指针,因此调整大小会影响与数组无关的其他一些内存。数组中的所有内容基本上只是指向可能不同长度的内存块的指针。
此外,如果你有这样的事情:
std::vector<int> arr [5];
数组的内存将在堆栈上,向量的内存将在堆上。完全不同!
于 2012-06-13T01:34:41.370 回答