C++中unordered_map几种按键查询比较
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++中unordered_map几种按键查询比较,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2363字,纯文字阅读大概需要4分钟。
内容图文
unorder_map有3种常见按键查值方法。
使用头文件<unordered_map>和<iostream>,以及命名空间std。
第一种是按键访问。如果键存在,则返回键对应的值;如果键不存在,则返回0;
1 #include<unordered_map> 2 #include<iostream> 3 4usingnamespace std; 5 6int main() { 7 unordered_map<int, int> test_map; 8 cout << test_map[0] << endl; // 键0不存在,输出0 9 test_map[0] = 1; // 加入键0 10 cout << test_map[0] << endl; // 键0存在,输出键对应的值 11return0; 12} 1314/*150 161 17*/
利用第一种访问方式,可以简单地往哈希表里面添加元素。
1 test_map[1]++; 2 test_map[2] = test_map[2] + 1; 3 cout << test_map[0] << endl << test_map[1]; 4 5/* 6 1 7 1 8 可以发现上面两种方式都可以往哈希表中添加元素和改变元素的值,用起来比较方便。 9 在进行比较的时候,不需要判断哈希表中键是否存在。 10*/
第二种是使用哈希表成员函数count查询,count函数计算哈希表中要查询键的个数,在哈希表中返回的值只有0和1
即哈希表中是否存在要查询的键。
1 #include<unordered_map> 2 #include<iostream> 3 4usingnamespace std; 5 6int main() { 7 unordered_map<int, int> test_map; 8 9 test_map[0] = 1; 10 test_map[1] = 2; 11 cout << test_map.count(0) << endl << test_map.count(1) << endl << test_map.count(2) << endl; 12 // 哈希表中存在键0和1,因此输出为1 1 013return0; 14} 1516/*171 181 190 20*/
第三种方式是使用哈希表成员函数find进行查询,如果返回的值是哈希表的迭代器类型。
如果等于哈希表的末尾,则表示键不在哈希表中。
如果不等于哈希表的末尾,则可以通过iter->first来访问要查询的键,通过iter->second来访问要查询的键对应的值。
1 #include<unordered_map> 2 #include<iostream> 3 4usingnamespace std; 5 6int main() { 7 unordered_map<int, int> test_map; 8 9 test_map[0] = 1; 10int key = 0; 11 unordered_map<int, int>::iterator tmp = test_map.find(key); 12if (tmp == test_map.end()) { 13 cout << "no key " << key << endl; 14 } 15else { 16 cout << "exist key " << key << endl; 17 cout << "first: " << tmp->first << " second: " << tmp->second << endl; 18 } 19 cout << endl; 20 key = 1; 21 tmp = test_map.find(key); 22if (tmp == test_map.end()) { 23 cout << "no key " << key << endl; 24 } 25else { 26 cout << "exist key " << key << endl; 27 cout << "first: " << tmp->first << " second: " << tmp->second << endl; 28 } 29return0; 30} 3132/*33exist key 0 34first: 0 second: 1 3536no key 1 37*/
以上就是unordered_map的几种按键查询比较。
最近在LeetCode上做题的时候,对unordered_map的查询以及返回值有一些疑惑,所以写了这篇博客。
如果对上面有问题或者上面有错误,欢迎大家在评论区留言
原文:https://www.cnblogs.com/proton/p/13415663.html
内容总结
以上是互联网集市为您收集整理的C++中unordered_map几种按键查询比较全部内容,希望文章能够帮你解决C++中unordered_map几种按键查询比较所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。