📅  最后修改于: 2023-12-03 15:29:51.221000             🧑  作者: Mango
unordered_set是C++ STL中的一个关联容器,其内部实现了一个哈希表,可以进行快速的插入、查找和删除。而reserve()函数就是用来预分配unordered_set最大元素数量的函数。
void unordered_set::reserve(size_type n);
该函数不返回任何值。
reserve()函数被用来预先分配内存空间,以提高unordered_set的性能,从而快速地插入元素。reserve()函数接受一个参数n,它表示unordered_set预计需要容纳的元素个数。reserve()函数最好在unordered_set添加元素之前调用,这样可以有效地避免unordered_set重新分配内存空间以容纳新元素。
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> set1;
set1.reserve(1000); // 预留1000个元素的空间
for(int i = 1; i <= 1000; i++)
{
set1.insert(i); // 向set1插入1000个元素
}
cout << "set1中元素的数量:" << set1.size() << endl;
return 0;
}
输出:
set1中元素的数量:1000
在上述示例代码中,预留了1000个元素的空间,然后向unordered_set容器中添加了1000个元素,避免了unordered_set的重新分配内存。