std::map使用
时间: 2023-08-23 22:11:28 浏览: 37
std::unordered_map是C++ STL中的一个关联容器,用于存储键值对。它使用哈希表实现,可以快速地查找和插入元素。使用时需要包含头文件<unordered_map>。
使用std::unordered_map时,需要定义键和值的类型,并可以选择自定义哈希函数和比较函数。可以使用insert()函数插入元素,使用find()函数查找元素,使用erase()函数删除元素。还可以使用迭代器遍历容器中的元素。
需要注意的是,std::unordered_map中的元素是无序的,插入和查找的时间复杂度为O(1)。但是,由于哈希表的实现,插入和查找的速度可能会受到哈希冲突的影响。因此,在使用std::unordered_map时,需要根据具体情况选择合适的哈希函数和负载因子,以提高容器的效率。
相关问题
std::map使用方法
std::map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。下面是std::map的使用方法:
1. 包含头文件:首先需要包含<map>头文件。
2. 定义map对象:使用std::map<key_type, value_type>来定义一个map对象,其中key_type是键的类型,value_type是值的类型。例如,可以定义一个存储整数到字符串的映射关系的map对象:std::map<int, std::string> myMap;
3. 插入元素:可以使用insert()函数向map中插入元素。插入元素时需要指定键和值。例如,可以插入一个键值对(1, "one")到myMap中:myMap.insert(std::make_pair(1, "one"));
4. 访问元素:可以使用[]运算符或者at()函数来访问map中的元素。例如,可以通过键1来访问对应的值:"std::cout << myMap;" 或者 "std::cout << myMap.at(1);"
5. 查找元素:可以使用find()函数来查找指定键的元素。如果找到了,则返回指向该元素的迭代器;如果没有找到,则返回指向末尾的迭代器。例如,可以查找键为1的元素:auto it = myMap.find(1); if (it != myMap.end()) { // 找到了元素 }
6. 删除元素:可以使用erase()函数来删除指定键的元素。例如,可以删除键为1的元素:myMap.erase(1);
7. 遍历元素:可以使用迭代器来遍历map中的所有元素。例如,可以使用for循环遍历myMap中的所有键值对:for (auto it = myMap.begin(); it != myMap.end(); ++it) { std::cout << it->first << ": " << it->second << std::endl; }
8. 其他操作:std::map还提供了一些其他的操作,如获取map的大小(size())、判断map是否为空(empty())等。
std::map 使用方法
std::map 是一个关联式容器,使用键值对的形式存储数据。可以通过 key 查找相应的 value。以下是一个简单的示例:
```cpp
std::map<std::string, int> myMap;
myMap["one"] = 1;
myMap["two"] = 2;
myMap["three"] = 3;
std::cout << myMap["two"] << std::endl; // 输出 2
for (auto const& x : myMap)
{
std::cout << x.first << ":" << x.second << std::endl;
}
/*
输出:
one:1
three:3
two:2
*/
```
其中,字符串作为 key,整型作为 value。可以使用 [] 运算符来访问和设置元素,也可以使用迭代器遍历元素。