#include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { //创建 umap 容器 unordered_map<string, string> umap{ {"Python教程","http://c.biancheng.net/python/"}, {"Java教程","http://c.biancheng.net/java/"}, {"Linux教程","http://c.biancheng.net/linux/"} }; //获取 "Java教程" 对应的值 string str = umap["Java教程"]; cout << str << endl; return 0; }程序输出结果为:
http://c.biancheng.net/java/
#include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { //创建空 umap 容器 unordered_map<string, string> umap; //[] 运算符在 = 右侧 string str = umap["STL教程"]; //[] 运算符在 = 左侧 umap["C教程"] = "http://c.biancheng.net/c/"; for (auto iter = umap.begin(); iter != umap.end(); ++iter) { cout << iter->first << " " << iter->second << endl; } return 0; }程序执行结果为:
C教程 http://c.biancheng.net/c/
STL教程
out_of_range
异常。#include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { //创建 umap 容器 unordered_map<string, string> umap{ {"Python教程","http://c.biancheng.net/python/"}, {"Java教程","http://c.biancheng.net/java/"}, {"Linux教程","http://c.biancheng.net/linux/"} }; //获取指定键对应的值 string str = umap.at("Python教程"); cout << str << endl; //执行此语句会抛出 out_of_range 异常 //cout << umap.at("GO教程"); return 0; }程序执行结果为:
http://c.biancheng.net/python/
此程序中,第 13 行代码用于获取 umap 容器中键为“Python教程”对应的值,由于 umap 容器确实有符合条件的键值对,因此可以成功执行;而第 17 行代码,由于当前 umap 容器没有存储以“Go教程”为键的键值对,因此执行此语句会抛出 out_of_range 异常。#include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { //创建 umap 容器 unordered_map<string, string> umap{ {"Python教程","http://c.biancheng.net/python/"}, {"Java教程","http://c.biancheng.net/java/"}, {"Linux教程","http://c.biancheng.net/linux/"} }; //查找成功 unordered_map<string, string>::iterator iter = umap.find("Python教程"); cout << iter->first << " " << iter->second << endl; //查找失败 unordered_map<string, string>::iterator iter2 = umap.find("GO教程"); if (iter2 == umap.end()) { cout << "当前容器中没有以\"GO教程\"为键的键值对"; } return 0; }程序执行结果为:
Python教程 http://c.biancheng.net/python/
当前容器中没有以"GO教程"为键的键值对
#include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { //创建 umap 容器 unordered_map<string, string> umap{ {"Python教程","http://c.biancheng.net/python/"}, {"Java教程","http://c.biancheng.net/java/"}, {"Linux教程","http://c.biancheng.net/linux/"} }; //遍历整个容器中存储的键值对 for (auto iter = umap.begin(); iter != umap.end(); ++iter) { //判断当前的键值对是否就是要找的 if (!iter->first.compare("Java教程")) { cout << iter->second << endl; break; } } return 0; }程序执行结果为:
http://c.biancheng.net/java/
以上 4 种方法中,前 2 种方法基本能满足多数场景的需要,建议初学者首选 at() 成员方法!
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有