map双键-值对及特殊键值对
来源:互联网 发布:mac三国志13修改器 编辑:程序博客网 时间:2024/06/04 20:09
想着python里面的字典是多么的优美,然后想想c++里面要实现一个双键-值对,可以用来取代二维数组(没什么必要。。。)或者是一些具有不同类型横纵坐标的表。
my[make_pair(2, 2)]这个重载了[ ]操作符,如果键不存在则会先插入一个键为(2,2)的对象,然后将值赋为0。慎用!
可以用count函数来查看该键是否已经存在。存在为1,不存在为0。
#include <cstdio>#include <map>using namespace std;int main(){ map<pair<int, int>, int> my; printf("%d\n", my.size()); my.insert( make_pair( make_pair(1, 2), 3) ); printf("%d\n", my.size()); printf("value count %d\n", my.count(make_pair(2,2))); return 0;}
用char*作key
由于char*仅仅是一个指针,只存储了字符串内存的首地址,如果直接用一个char*来作为key,则变成了地址作为key而不是对应的字符串作为key,一个简单的方法就是利用string的构造函数将char*转成string对象。
#include <cstdlib>#include <string>#include <map>#include <cstdio>using namespace std;char *name, *number;map<string, char*> phoneBook;//insert a new elementname = (char*)malloc(21);number = (char*)malloc(21);scanf("%s%s", name, number); //name and number separated by a spacephoneBook.insert(make_pair(name, number));//queryscanf("%s", name);if(phoneBook.find(name) == phoneBook.end()){ printf("Not found\n");}else{ printf("%s=%s\n", name, phoneBook[name]);}
0 0
- map双键-值对及特殊键值对
- day07--Map键值对
- 解析Map键值对
- extjs map 键值对访问
- C++ map键值对用
- 对map键值进行排序
- map键值对简单使用
- 对Map的键值对操作
- 获取Map中键值对的特殊方法——笔记
- MAP中删除所有vlaue值相同的键值对
- 利用map对键值的默认排序
- java 键值对 Map<String, String>
- POJ2503 Babelfish(Map键值对的应用)
- std::map 如何插入键值对
- C实现键值对(Map功能)
- Map中的键值对进行遍历
- map的键值对的排序
- C++ map键值对容器demo
- ImageLoader
- 挑7
- 【Android测试】Uiautomator——API详解
- poj2223Frogger【二分】
- 孙鑫lesson20 hook &database
- map双键-值对及特殊键值对
- mount --bind 的妙用
- MJExtension框架中模型里包含模型的问题
- poj 2833 堆排序
- zookeeper知识点三(获取子节点)
- MonkeyRunner API使用说明-------------第3章
- QT 学习之路 图片显示
- Android Studio 每次启动都默认打开项目--解决方法
- 解决PHP之 Allowed memory size of xxx bytes exhausted