C++STL中的unordered_set reserve()函数
unordered_set::reserve()方法是C++STL中的内置函数,用于请求unordered_set的容量变化。它将容器中的bucket数量设置为至少包含n个元素。如果n大于当前的bucket_count乘以max_load_factor,则会增加容器的bucket_count并强制重新散列。如果n小于bucket_count,则该函数对其没有影响。
语法:
unordered_set_name.reserve(size_type n)
参数: 该函数接受一个必需的单一参数n,它将容器中的bucket数(bucket_count)设置为最适合至少包含n个元素的数目。
返回值: 此函数不返回任何值。下面的程序说明了unordered_set::reserve()函数:
程序1:
//C++程序说明
//unordered_set .reserve()
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main()
{
//unordered_set声明
unordered_set<string>us;
us.reserve(3);
us.insert("geeks");
us.insert("for");
us.insert("geeks");
us.insert("users");
us.insert("geeksforgeeks");
for (auto it = us.begin(); it != us.end(); it++) {
cout << *it << " ";
}
return 0;
}
输出:
geeksforgeeks users geeks for
程序2:
//C++程序说明
//unordered_set .reserve()
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main()
{
//unordered_set声明
unordered_set<string>us;
us.reserve(0);
us.insert("geeks");
us.insert("for");
us.insert("geeks");
for (auto it = us.begin(); it != us.end(); it++) {
cout << *it << " ";
}
return 0;
}
输出:
for geeks
时间复杂度: O(N)