- 论坛徽章:
- 0
|
噢,我的意思是这样:
struct ltstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) < 0;
}
};
typedef map<char *, char *, ltstr> test_type;
这样应该没问题吧?
我试了一下(linux 2.6.20 gcc 4.1.2),不知道其他环境怎样,我好像一直都这么用的,没出问题,望高手明示!!!呵呵,多谢
#include <map>
#include <iostream>
#include <string.h>
using namespace std;
struct ltstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) < 0;
}
};
typedef map<char *, char *, ltstr> test_type;
int main()
{
test_type t;
t["test"] = "1";
string str = "test";
test_type::iterator iter = t.find((char*)str.c_str());
cout << iter->first << " " << iter->second << endl;
} |
|