我在一本书中看到了这个问题:
std :: vector的哪些成员函数正在控制分配的内存?
有人可以回答这个问题吗? 谢谢
答案 0 :(得分:1)
Container类的内存分配由为每个类定义的基础Allocator
管理
几乎所有成员函数都将control
分配的内存。
答案 1 :(得分:0)
对此的预期答案可能是resize
,reserve
和clear
,尽管后者确实不实际上控制了分配的内存,它只是重置了“已知”大小为零而不修改底层缓冲区。
答案 2 :(得分:0)
所有这些。他们都不是。这是一个实现细节。 你不知道,无所谓。
答案 3 :(得分:0)
默认构造函数可能会也可能不会分配内存。
如果向量最初不为空,则其他构造函数将分配内存,如果向量为空,则可以分配内存。
operator=
,assign
,insert
,push_back
,reserve
和resize
会在新的尺寸或容量超过当前值时重新分配内存能力,否则不会。
析构函数将释放任何已分配的内存。
没有其他成员函数会更改内存分配,但有些可能会更改或使内存内容无效。
答案 4 :(得分:-1)
http://msdn.microsoft.com/en-us/library/k449z507(v=VS.100).aspx
通过谷歌搜索“矢量成员函数”来回答这个地方的问题是有限制的。