std :: vector成员函数

时间:2011-03-28 15:29:04

标签: c++ stl

我在一本书中看到了这个问题:

  

std :: vector的哪些成员函数正在控制分配的内存?

有人可以回答这个问题吗?  谢谢

5 个答案:

答案 0 :(得分:1)

Container类的内存分配由为每个类定义的基础Allocator管理 几乎所有成员函数都将control分配的内存。

答案 1 :(得分:0)

对此的预期答案可能是resizereserveclear,尽管后者确实实际上控制了分配的内存,它只是重置了“已知”大小为零而不修改底层缓冲区。

答案 2 :(得分:0)

所有这些。他们都不是。这是一个实现细节。 你不知道,无所谓

答案 3 :(得分:0)

默认构造函数可能会也可能不会分配内存。

如果向量最初不为空,则其他构造函数将分配内存,如果向量为空,则可以分配内存。

operator=assigninsertpush_backreserveresize会在新的尺寸或容量超过当前值时重新分配内存能力,否则不会。

析构函数将释放任何已分配的内存。

没有其他成员函数会更改内存分配,但有些可能会更改或使内存内容无效。

答案 4 :(得分:-1)

http://msdn.microsoft.com/en-us/library/k449z507(v=VS.100).aspx

通过谷歌搜索“矢量成员函数”来回答这个地方的问题是有限制的。