📅  最后修改于: 2023-12-03 15:37:34.607000             🧑  作者: Mango
在C++ STL中,映射(map)
是一种关联式容器,用于存储键值对,其中每个键唯一。常用的STL映射容器有std::map
与std::unordered_map
。
每个STL容器都有一些可用的成员函数用于操作容器。max_size()
是映射容器中的一个成员函数。本篇文章将介绍如何使用该函数以及映射容器的其他一些基础内容。
在C++ STL中,max_size()
函数可以用于查看映射容器所能容纳元素的最大个数,返回值为无符号整型数。
以下是std::map
和std::unordered_map
中max_size()
函数的简单用法示例:
#include <iostream>
#include <map>
#include <unordered_map>
int main() {
std::map<int, int> myMap;
std::unordered_map<int, int> myUnorderedMap;
std::cout << "Size of map: " << myMap.max_size() << std::endl;
std::cout << "Size of unordered_map: " << myUnorderedMap.max_size() << std::endl;
return 0;
}
输出:
Size of map: 1073741823
Size of unordered_map: 965667225
上面的例子中,max_size()
函数被用于打印出两种映射容器的最大容量。
值得注意的是,max_size()
函数返回的值只是容器可容纳元素的最大值,并不意味着可以实际存储这么多元素。容器的大小和可用内存有关。
插入元素是映射容器最基本的操作。在C++ STL中,插入元素需要用到insert()
函数。以下是std::map
和std::unordered_map
中insert()
函数的简单用法示例:
#include <iostream>
#include <map>
#include <unordered_map>
int main() {
std::map<int, std::string> myMap;
std::unordered_map<int, std::string> myUnorderedMap;
myMap.insert(std::pair<int, std::string>(1, "one"));
myUnorderedMap.insert(std::pair<int, std::string>(1, "one"));
return 0;
}
上面的例子中,insert()
函数被用于将键值对(1, "one")
插入到映射容器中。
删除元素是映射容器另外一种基本操作。在C++ STL中,删除元素需要用到erase()
函数。以下是std::map
和std::unordered_map
中erase()
函数的简单用法示例:
#include <iostream>
#include <map>
#include <unordered_map>
int main() {
std::map<int, std::string> myMap;
std::unordered_map<int, std::string> myUnorderedMap;
myMap.insert(std::pair<int, std::string>(1, "one"));
myMap.insert(std::pair<int, std::string>(2, "two"));
myMap.erase(1);
myUnorderedMap.insert(std::pair<int, std::string>(1, "one"));
myUnorderedMap.insert(std::pair<int, std::string>(2, "two"));
myUnorderedMap.erase(1);
return 0;
}
上面的例子中,erase()
函数被用于删除键值对(1, "one")
。
本篇文章介绍了映射容器和其中三个基本函数:max_size()
、insert()
和erase()
。在实际编程中,这些函数是映射容器最基本的操作。max_size()
函数可以用于查看容器的最大容量,而insert()
和erase()
函数可以用于插入和删除容器中的元素。