std::map用法
发布日期:2021-05-19 20:28:51 浏览次数:19 分类:精选文章

本文共 1356 字,大约阅读时间需要 4 分钟。

STL的map类是C++标准库中用于存储键值对的一组模板类,广泛应用于需求对键值进行快速查找和管理的场景。在使用STL的map类之前,我们需要了解它的基本概念和使用方法。

包含文件

在使用map类之前,必须包含相应的头文件:

#include 

定义map对象

map类是模板类,需要指定两个模板参数:键(key)的类型和值(value)的类型。例如:

std::map
myMap;

这里,std::map<int, std::string> 表示使用整数作为键,字符串作为对应的值。

添加条目

通过直接访问或调用插入方法可以添加条目。使用 [] 运算符可以直接赋值:

myMap[1] = "One";

或者调用 insert 方法:

myMap.insert(std::make_pair(1, "One"));

查找条目

使用 find 方法查找特定键:

std::map
::iterator it = myMap.find(1);

若找到的结果为空,表示不存在该键:

if (it == myMap.end()) {
// 未找到条目
} else {
// 找到条目
}

删除条目

使用 erase 方法删除条目,支持多种调用方式:

  • 删除单个条目:
myMap.erase(1);
  • 删除多个条目:
myMap.erase(myMap.begin(), myMap.begin() + 2);
  • 或者使用空式 iterators:
auto it = myMap.erase(myMap.begin());

获取条目总数

使用 size() 方法获取当前条目总数:

int size = myMap.size();

清空映射

使用 clear() 方法清空整个映射:

myMap.clear();

输出示例

编写一个简单的输出示例:

#include 
#include
#include
using namespace std;
int main() {
map
m;
m["a"] = 1;
m["b"] = 2;
m["c"] = 3;
for (auto& pair : m) {
cout << "Key: " << pair.first << ", Value: " << pair.second << endl;
}
return 0;
}

注意事项

  • 类型匹配:确保键和值的类型与模板参数一致。在查找时,若键的类型不匹配,可能会导致编译错误。
  • 迭代器使用begin()end() 返回的是 std::pair 对象的一种特殊化迭代器 (iterator),包含两个成员 firstsecond
  • 资源管理:在使用 map 对象时,注意在类的析构函数中调用 clear() 方法,以释放内存。

通过以上方法,STL的 map 类可以简化键值对的存储和管理过程。在实际应用中,可以根据需求选择合适的插入、查找和删除方法,确保程序的可靠性和效率。

上一篇:C++基于TCP和UDP的socket通信
下一篇:IT求职中,笔试、面试的算法准备

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年05月10日 08时06分05秒