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()函數是一個請求函數,它只會盡力縮小容量,但不能保證一定會縮小到與大小相等。具體來說,這取決于實現的策略和實現細節。