温馨提示×

C++ vector::shrink_to_fit()的用法是什么

c++
小亿
133
2023-10-19 10:14:09
栏目: 编程语言

vector::shrink_to_fit()是C++中vector容器的成员函数,它用于请求vector容器减少其容量以适应其当前大小。

具体来说,shrink_to_fit()函数会将vector的容量缩小到与其大小相等,以便节省内存空间。它会将未使用的内存空间释放掉,从而使得只有当前大小的元素占用内存。

使用shrink_to_fit()函数可以在vector不再需要其当前容量时,手动释放多余的内存。这在使用vector进行大量操作之后,需要释放内存以减少内存占用时非常有用。

以下是shrink_to_fit()函数的示例用法:

#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "Size before shrink: " << vec.size() << std::endl;  // 输出:Size before shrink: 5
std::cout << "Capacity before shrink: " << vec.capacity() << std::endl;  // 输出:Capacity before shrink: 5
vec.shrink_to_fit();
std::cout << "Size after shrink: " << vec.size() << std::endl;  // 输出:Size after shrink: 5
std::cout << "Capacity after shrink: " << vec.capacity() << std::endl;  // 输出:Capacity after shrink: 5
return 0;
}

在上面的示例中,首先创建了一个具有5个元素的vector。然后使用shrink_to_fit()函数将其容量缩小到与其大小相等。在函数调用之前和之后,使用size()和capacity()函数分别输出vector的大小和容量。可以看到,虽然调用了shrink_to_fit()函数,但容量仍保持不变,因为vector的大小仍然等于容量。

请注意,shrink_to_fit()函数是一个请求函数,它只会尽力缩小容量,但不能保证一定会缩小到与大小相等。具体来说,这取决于实现的策略和实现细节。

0