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

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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程