STL map<char*,void*> 的find问题
来源:互联网 发布:层次数据库 编辑:程序博客网 时间:2024/06/07 17:27
map<char*,void*> _map;void* ptr;_map[filename] = ptr;load_resource(char* filename){std::string s(filename);char* t = (char*)s.c_str(); //直接find(filename)和find(t)的结果不一样,一个找得到,一个找不到map::iterator it = _map.find(t); if(_map.end() != it){ //find} else { //not find } //code}
但是为啥这个代码运行正常?
load_resource(char* filename){map::iterator it = _map.find(filename); if(_map.end() != it){ //find} else { _map[filename] = ptr; //not find } //code}load_resource("aaa");//这次调用not find,于是使用这个key创建了这个项目load_resource("aaa");//这次调用find
答案:
因为当你用char*当key的时候,key实际上是那个指针的值,所以你用string来一下当然是要失败。如果你要用char*的内容当key的话,你必须写成map<string, void*>。
0 0
- STL map<char*,void*> 的find问题
- STL中map的key能否用char *呢?当然可以! map<char *, char *>
- STL map: [] 还是find
- stl map find使用不当导致的低概率core dump问题的定位
- STL之map::find方法的使用小例子
- STL 中map中find和map[]
- STL中map的使用问题
- STL map使用时的一些问题
- C++ STL map 删除元素的问题
- STL中的map表的使用问题
- STL map内存释放的问题
- c++ stl map 的初始化问题
- map<char *, char *>的使用
- char*做map的key使用时的问题
- char string void*的一些转换
- 【STL】find的用法
- 使用STL的find函数遇到的问题
- 跨dll访问STL的map的问题
- iOS设计模式之一:MVC模式和单例模式
- 独立事件、笛卡尔积与矩阵向量乘法
- form.js插件 利用ajaxSubmit上传文件时ie总出现下载提示框
- 实习面试记录整理
- SQLite的FLOOR函数和POWER函数和TYPEOF函数
- STL map<char*,void*> 的find问题
- 记录一下自己实现的堆排序
- linux shell 2> /dev/null的解释
- POJ-1947-树形dp+01背包
- Codeforces743D Chloe and pleasant prizes[树形DP]
- Mapper和Dao名字相同
- 简易ORM Sqlite框架 一 查询
- iOS同步post请求
- Keras实现各类自编码器