📜  在C++ STL中映射max_size()(1)

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

C++ STL中映射max_size()

在C++ STL中,映射(map)是一种关联式容器,用于存储键值对,其中每个键唯一。常用的STL映射容器有std::mapstd::unordered_map

每个STL容器都有一些可用的成员函数用于操作容器。max_size()是映射容器中的一个成员函数。本篇文章将介绍如何使用该函数以及映射容器的其他一些基础内容。

max_size()函数

在C++ STL中,max_size()函数可以用于查看映射容器所能容纳元素的最大个数,返回值为无符号整型数。

以下是std::mapstd::unordered_mapmax_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()函数返回的值只是容器可容纳元素的最大值,并不意味着可以实际存储这么多元素。容器的大小和可用内存有关。

insert()函数

插入元素是映射容器最基本的操作。在C++ STL中,插入元素需要用到insert()函数。以下是std::mapstd::unordered_mapinsert()函数的简单用法示例:

#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")插入到映射容器中。

erase()函数

删除元素是映射容器另外一种基本操作。在C++ STL中,删除元素需要用到erase()函数。以下是std::mapstd::unordered_maperase()函数的简单用法示例:

#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()函数可以用于插入和删除容器中的元素。