日期:2014-05-16  浏览次数:20661 次

使用C++中的容器set碰到的问题。
struct S_str_cmp
{
bool operator()(const char *p1, const char *p2) const {
if(strcmp(p1, p2)<0) return true;
return false;
}
};

std::set<char *, S_str_cmp> set_1;

void add_str(char *str) {
set_1.insert(str);
}

这样写的set,里面的变量,会自动排序,比如,
add_str(“003”);add_str(“001”);add_str(“103”);add_str(“004”);
用迭代器遍历里面的变量,出来后,就直接是:
001、003、004、103
这是怎么回事,bool operator()。。。,这个运算符重载的函数是在什么地方调用的啊?
C++ set

------解决方案--------------------
会在维护红黑树做结点大小比较时候用啊.