使用clear函数后再使用一次shrink_to_fit函数,具体效果详见以下代码和截图。
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<bool> flags(5);
flags[0] = true;
flags[2] = true;
flags[4] = true;
cout << "flags's size: " << flags.size() << ", flags's capacity: " << flags.capacity() << "\n";
for (int i = 0; i < 5; i++){
cout << flags[i] << " ";
}
cout << "\n";
flags.push_back(true);
cout << "flags's size: " << flags.size() << ", flags's capacity: " << flags.capacity() << "\n";
flags.shrink_to_fit();
cout << "flags's size: " << flags.size() << ", flags's capacity: " << flags.capacity() << "\n";
flags.clear();
cout << "flags's size: " << flags.size() << ", flags's capacity: " << flags.capacity() << "\n";
flags.shrink_to_fit();
cout << "flags's size: " << flags.size() << ", flags's capacity: " << flags.capacity() << "\n";
return 0;
}