首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

aix下,stl有关问题

2014-01-22 
aix下,stl问题keym_map.insert(pair string, STRU_KEYM (strKey, pstru_keym))代码就这一行,用的stl ma

aix下,stl问题
keym_map.insert(pair <string, STRU_KEYM> (strKey, pstru_keym));
代码就这一行,用的stl map,报了错误,修改无效,请教高手
编译环境AIX xlC stl map
"mapopt.cpp", line 45.21: 1540-0218 (S) The call does not match any parameter list for "pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,stru_keym>::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,stru_keym>".
"/usr/vacpp/include/utility", line 70.9: 1540-1283 (I) "std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,stru_keym>::pair()" is not a viable candidate.
"mapopt.cpp", line 45.21: 1540-0215 (I) The wrong number of arguments have been specified for "std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,stru_keym>::pair()".
"/usr/vacpp/include/utility", line 72.9: 1540-1283 (I) "std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,stru_keym>::pair(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &, const stru_keym &)" is not a viable candidate.
"mapopt.cpp", line 45.55: 1540-0256 (I) A parameter of type "const stru_keym &" cannot be initialized with an expression of type "STRU_KEYM *".
"/usr/vacpp/include/utility", line 75.17: 1540-1283 (I) "template std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,stru_keym>::pair(const pair<_U1,_U2> &)" is not a viable candidate.
[解决办法]
能告诉我keym_map,strKey以及pstru_keym的定义吗?
[解决办法]
用了下面这行之后,报什么错?

keym_map.insert(make_pair(strKey, *pstru_keym));


[解决办法]
把你的代码注释掉,然后加上下面两行,看看还出错么?

map<string, int> xxx;
xxx.insert(make_pair(string("aa"), 45));

[解决办法]
引用:
Quote: 引用:

能告诉我keym_map,strKey以及pstru_keym的定义吗?


typedef struct stru_keym
{
    char cMode;          
    char sztime[3 + 1];  
                         

    char szKey [42 + 1]; 
    char szData[42 + 1]; 

}STRU_KEYM;

typedef map<string, STRU_KEYM> KEYM_MAP;

strKey 就是结构里面的szKey.

strKey 是 char 数组的话,会和 map 的键类型不匹配,把它转化成 string 类型后再试一下。
[解决办法]
引用:
Quote: 引用:

把你的代码注释掉,然后加上下面两行,看看还出错么?

map<string, int> xxx;
xxx.insert(make_pair(string("aa"), 45));


还是出错的


这个是map的最基本用法,根据这报的错查查吧

热点排行