`
美丽的小岛
  • 浏览: 297173 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

char* 做map 的KEY的思考

    博客分类:
  • c++
 
阅读更多

很明显的道理,不要简单从字面上的东西去理解,虽然char*可以指向字符串,但它毕竟只是一个指针,指针存放的内容只能是地址,请谨记。 而string是一个对象,当传递一个常量字符串(例如"abc")进来时,可以通过string的构造函数自动将该常量字符串转换为一个string对象。 如果把该常量字符串赋值给char*类型,就如同char* p = "abc"; 这个时候p只是一个指向"abc"的首地址的指针而已

 

 

2种修改方式

I

  1. map<std::string, Actor> actorCache;  


II

FROM

  1. struct ptrCmp  
  2. {  
  3.     bool operator()( const char * s1, const char * s2 ) const  
  4.     {  
  5.         return strcmp( s1, s2 ) < 0;  
  6.     }  
  7. };  
  8. map<char *, int, ptrCmp> mapStr;  


 

总结:

首先考虑用I,如果确实对性能要求比较高的在考虑II

http://blog.csdn.net/xpwang168/article/details/8981799

分享到:
评论

相关推荐

    rsa算法设计 密码学

    //extern "C" __declspec(dllexport) int RsaAEncrypt(CString& source,const char* key,const char* R,CStringArray& result);//加密 //extern "C" __declspec(dllexport) CString RsaADecrypt(CStringArray& ...

    libhashmap:一个简单但纯净且轻量的hashmap C库

    Lib HashMap 它是用C语言编写的,针对C开发人员的多用途lightweig hasmap libray。 随时贡献力量,加星叉。安装要在Linux上安装lib,请克隆存储库并...int hashmap_add(struct hashmap **map, const char *key, void

    基于C++ map中key使用指针问题的详解

    C++实际开发的过程会经常使用...确定采用find方式查找数据后,我们需要考虑存储map的空间复杂度,对于基础数据类型的数据(int char等)这里就不做讨论。本文讨论的是map中存储的数据结构struct情况。1、如果map中的key

    无顺序 map c++ vs2010-vs2022都可以编译的 版本

    tsl::ordered_map&lt;char, int&gt; map = { {'d', 1}, {'a', 2}, {'g', 3} }; map.insert({ 'b', 4 }); map['h'] = 5; map['e'] = 6; map.unordered_erase('a'); // {d, 1} {g, 3} {b, 4} {h, 5} {e, 6} for ...

    ORANGES'_自己动手写操作系统_光盘源代码.zip

    /*++++++++++++++++++++++++...extern struct dev_drv_map dd_map[]; /* for test only */ extern char * logbuf; extern const int LOGBUF_SIZE; extern char * logdiskbuf; extern const int LOGDISKBUF_SIZE;

    达内 coreJava 习题答案

    1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner;...

    贪吃蛇C++版(转)

    void CSnake::SnakeMove(HWND hWnd, CMap &map,CFood &food, WPARAM key) { list&lt;stSnakeNode&gt;::iterator i; static UINT d; list&lt;UINT&gt; direction; list&lt;UINT&gt;::iterator iter; switch( key ) { case VK...

    Linux读写ini文件

    Linux Ini文件读写 已在实际项目上使用 用法: CIni ini; ini.OpenFile&#40;"./Test.ini","r" &#41...char *pVal1 = ini.GetStr("Section1","key2"); int nKey = ini.GetInt("Section2","key1"); 实现方法用的是二层map

    iocp服务器客户端混合框架

    //好能标志一个连接,比如,客户端列表的某个节点的指针,假设用STL中的MAP来维护客户端列表,那么用KEY作为返回值也不错。) long _stdcall ioc_call_connect(HIOC hIoc,HINT s,long u_addr,long u_port,long flag) ...

    modern-cpp-json:基于现代cpp的json库

    int main ( int argc, char * argv[]){Json json ={{ " int " , 12306 },{ " double " , 3.1415 },{ " string " , " hello world " },{ " vector " , { 1 , 1 , 2 , 3 , 5 , 8 , 11 }},{ " map " ,{{ " key1 " , 123...

    分享C++面试中string类的一种正确写法

    (用作 std::map 的 key_type 是更进一步的要求,本文从略)。 换言之,你的 String 能让以下代码编译运行通过,并且没有内存方面的错误。 代码如下:void foo(String x) { } void bar(const String& x) { } ...

    一个C++做的迷宫小游戏(附带源文件)

    char c; while(c=getch()) { if(c==27) return Esc; //Esc if(c!=-32)continue; c=getch(); if(c==72) return Up; //上 if(c==80) return Down; //下 if(c==75) return Left; //左 if(c==77) return Right...

    easyload 9.0

    micode (a serialized quadtree key) 2.x: Oracle MD/SDO version 1 HHCODE_ - Not Supported 3.x: Oracle MD/SDO version 1 HHCODE_PARTIONED - Not Supported 4.x: Point layer in X/Y columns 5.x: SpatialWare ...

    Hibernate中文API大全

    &lt;composite-map-key&gt;元素允许你映射一个组件类作为一个Map的key,前提是你必须正确的在这个类中重写了hashCode() 和 equals()方法。 8.4. 组件作为联合标识符(Components as composite identifiers) 你可以使用一...

    Excel POI读取封装(文件+示范代码)

    for (String datakey : dbfield.keySet()) {// 循环该map的key集合 for (ExcelMap e : dbfield.get(datakey)) { if (map.containsKey(e.getName())) { if (e.isCompare() && !iscompare.containsKey(e....

    Android静默安装常用工具类

    getMap(JSONObject jsonObject, String key) 得到map getMap(String jsonData, String key) 得到map 表示从json中读取某个Map类型key的值 源码可见JSONUtils.java,更多方法及更详细参数介绍可见JSONUtils Api Guide...

    leetcode走方格起点到终点-CBCLeetCode:Java刷题&练习GitHub使用

    leetcode走方格起点到终点 CBCLeetCode Java 刷题&练习 Git/GitHub 使用 使用 Git 上传代码 Git Bash(命令记不住) ...昨天题目太难没写,今天看了题解后自己写的,对于动态...Arrays.asList(charArray).contains(char

    PL/SQL 基础.doc

    2) TABLE类型与map,_T&gt;类似; 3) 表中的元素可以是复合类型; 4) KEY 没有必要是顺序的; 5) 当数据被插入表中的时候,表所需的空间就被分配了; 6. 变量的作用域和可见性 &lt;&lt;outer&gt;&gt; 1) 执行块里可以嵌入执行块; ...

    毕业设计五子棋源代码

    static char THIS_FILE[] = __FILE__; #endif //////////////////////////////////////////////////////////////////////////// // CFiveChessApp BEGIN_MESSAGE_MAP(CFiveChessApp, CWinApp) //{{AFX_MSG_MAP...

    r40_tinav2.1_最终验证通过_使用CB-S来验证OV5640有横条纹fpscamera+SPI2.0成功_20171114_1443没有外层目录.7z

    const char* buf,int buf_len,char** cmd,int* cmd_num,int lenght&#41; { int i = 0,j = 0,n = 0; while(buf[i] != '#'){ //the sub cmd end by '#' while(buf[i] != 'x' && buf[i] != ':' && buf[i] != '#') {...

Global site tag (gtag.js) - Google Analytics