C++ unordered_map::max_size() 函数



C++ 的 std::unordered_map::max_size() 函数用于返回无序映射或容器可以容纳的最大元素数量。此数字取决于系统或库的实现。

当我们在同一个程序中使用 max_size() 函数处理不同的无序映射或空无序映射时,我们会得到相同的无序映射容器的最大大小。

语法

以下是 std::unordered_map::max_size() 函数的语法。

size_type max_size() const;

参数

此函数不接受任何参数。

返回值

此函数返回一个无符号整数,表示无序映射可以容纳的最大元素数量。

示例 1

让我们来看下面的例子,我们将演示 max_size() 函数的用法。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<char, int> um;
   cout << "max_size of unordered_map = " << um.max_size() << endl;
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

max_size of unordered_map = 576460752303423487

示例 2

在下面的例子中,我们将对一个空映射进行插入操作,并观察插入元素前后输出的变化。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<char, int> um;
   cout << "max_size of unordered_map = " << um.max_size() << endl;
   um.insert({{'A', 2}, {'B', 5}, {'C', 6}, {'D', 10}});
   cout<<"*** Maximum size of unordered map after inserting the element to it ***"<<endl;
   cout << "max_size of unordered_map = " << um.max_size() << endl;
   return 0;
}

输出

以下是上述代码的输出:

max_size of unordered_map = 576460752303423487
*** Maximum size of unordered map after inserting the element to it ***
max_size of unordered_map = 576460752303423487

示例 3

考虑下面的例子,我们将考虑两个不同大小的映射,并检查两个容器的最大大小是否相同或不同。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<int, int> uMap;
   unordered_map<int, int> um;
   cout << "max_size of unordered_map = " << uMap.max_size() << endl;
   cout << "max_size of unordered_map = " << um.max_size() << endl;
   uMap.insert({{1, 2}, {2, 5}, {3, 6}, {4, 10}});
   um.insert({{2, 2}, {3, 5}, {5, 6}, {6, 10}});
   cout<<"*** Maximum size of unordered map after inserting the element to it ***"<<endl;
   cout << "max_size of unordered_map = " << uMap.max_size() << endl;
   cout << "max_size of unordered_map = " << um.max_size() << endl;
   return 0;
}

输出

上述代码的输出如下:

max_size of unordered_map = 576460752303423487
max_size of unordered_map = 576460752303423487
*** Maximum size of unordered map after inserting the element to it ***
max_size of unordered_map = 576460752303423487
max_size of unordered_map = 576460752303423487
广告