求帮助?
map<const char *,CMyWordTool>  m_StoreData;
typedef pair <const char *, CMyWordTool> Int_Pair;m_StoreData.insert(Int_Pair(struName,word_Tool));struName是通过获得的键值,但是这样insert无论多少次,m_StoreData.size()永远为1,这怎么解决?将struName换为"1" 或者"2",这样insert,StoreData.size()值就会改变,但是struName我必须要获得才行,各位牛人帮帮忙吧!

解决方案 »

  1.   

    map不能保存多个相同的键值。
    改用另一种容器吧。
      

  2.   

    可是我不明白了struName值咋变啊,怎么会键值相同呢?
      

  3.   

    但是我要求键值不能相同,
    我这里m_StoreData.insert(Int_Pair(struName,word_Tool));
    struName可能给他不同的值,但是键值会判断成相同,这是为什么?
      

  4.   

    map<const char *,CMyWordTool> m_StoreData;改成map<std::string,CMyWordTool> m_StoreData;每次insert时构建个string;
    有可能你每次插得字符地址相同.
      

  5.   

    如果非要用map的话。那key肯定不能一样。
    是在不行,你把key和value的值放过来放不久好了?反正value一样无所谓的。不过就是查询的时候麻烦一点。要知道原来是value现在是key的值的值。要不然就是循环。