跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C++unordered map
”︁(章节)
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 常用成员函数 == === 元素访问 === * <code>operator[]</code>:访问或插入元素(键不存在时会创建) * <code>at()</code>:访问元素(键不存在时抛出异常) 示例: <syntaxhighlight lang="cpp"> std::unordered_map<std::string, int> ageMap = {{"Alice", 25}, {"Bob", 30}}; // 使用operator[] ageMap["Charlie"] = 28; // 插入新元素 int aliceAge = ageMap["Alice"]; // 访问现有元素 // 使用at() try { int bobAge = ageMap.at("Bob"); // int unknown = ageMap.at("Unknown"); // 抛出std::out_of_range异常 } catch(const std::out_of_range& e) { std::cerr << "Key not found: " << e.what() << '\n'; } </syntaxhighlight> === 容量查询 === * <code>empty()</code>:检查容器是否为空 * <code>size()</code>:返回元素数量 * <code>max_size()</code>:返回容器可容纳的最大元素数 === 修改器 === * <code>insert()</code>:插入元素 * <code>emplace()</code>:原位构造元素 * <code>erase()</code>:删除元素 * <code>clear()</code>:清空容器 示例: <syntaxhighlight lang="cpp"> std::unordered_map<int, std::string> idToName; // 插入元素 idToName.insert({1, "Alice"}); idToName.emplace(2, "Bob"); // 效率更高 // 删除元素 idToName.erase(1); // 删除键为1的元素 // 清空容器 idToName.clear(); </syntaxhighlight> === 查找操作 === * <code>find()</code>:查找指定键的元素 * <code>count()</code>:统计具有指定键的元素数量(0或1) * <code>contains()</code>(C++20):检查是否包含指定键 示例: <syntaxhighlight lang="cpp"> std::unordered_map<std::string, double> priceMap = {{"apple", 1.99}, {"banana", 0.99}}; // 使用find() auto it = priceMap.find("apple"); if (it != priceMap.end()) { std::cout << "Price of apple: " << it->second << '\n'; } // 使用count() if (priceMap.count("banana") > 0) { std::cout << "Banana exists in the map\n"; } // C++20的contains() #if __cplusplus >= 202002L if (priceMap.contains("orange")) { std::cout << "Orange exists in the map\n"; } #endif </syntaxhighlight>
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)