char* 做map 的KEY

来源:互联网 发布:用微信打钱的麻将软件 编辑:程序博客网 时间:2024/05/16 05:42

[C++]char* 做map 的KEY

FROM

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

 

 

2种修改方式

第一种:

map<std::string, Actor> actorCache; 

第二种:

struct ptrCmp  {      bool operator()( const char * s1, const char * s2 ) const      {          return strcmp( s1, s2 ) < 0;      }  };  map<char *, int, ptrCmp> mapStr;  

总结:

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



0 0