如果使用
cppreference.com指出map.clear()从容器中删除所有元素。调用此函数后,size()返回零。
vec.clear()
清除std::vector vec
,则分配的内存不能立即释放。向量的size
将为零,但capacity
将保持不变/可以保持不变,这是非常有益的行为,因为可以清除大型向量并为其分配新值,而无需进行昂贵的内存分配/释放。此外,内存将减少碎片化。可以使用vec.shrink_to_fit()
shrink_to_fit来强制执行此操作。
std::map
具有clear
函数,但没有shrink_to_fit
。在调用clear
后,用于存储地图的所需内存会发生什么情况?cppreference.com指出map.clear()从容器中删除所有元素。调用此函数后,size()返回零。