📜  C++ STL中的unordered_set reserve()函数(1)

📅  最后修改于: 2023-12-03 15:29:51.221000             🧑  作者: Mango

C++ STL中的unordered_set reserve()函数

unordered_set是C++ STL中的一个关联容器,其内部实现了一个哈希表,可以进行快速的插入、查找和删除。而reserve()函数就是用来预分配unordered_set最大元素数量的函数。

语法
void unordered_set::reserve(size_type n);
  • 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的重新分配内存。