我已经找到了,但我找不到解决方案。对不起,这已经发布了。
我必须创建一个stxxl :: map结构,将const char *映射到const char *(最好将字符串转换成字符串,但我知道stxxl容器不接受非POD)
我在定义const char *的comp_type结构时遇到问题。有人有这样的例子吗?
这是我写的那个:
struct comp_type : public std::less<const char*>
{
static int max_value()
{
return (std::numeric_limits<char>::max)();
}
};
答案 0 :(得分:1)
我还没有足够的声誉发表评论。所以我发帖回复。
@ildjarn:对于stxxl
,在某些情况下您需要static T min_value()
和static T max_value()
。
@Fabrizio:您确定要直接比较两个const char*
吗?通过继承std::less<const char*>
,您正在做什么。如果你打算比较两个字符串,你需要这样的东西,
struct comp_type : public std::binary_function<const char*, const char*, bool>
{
bool operator ()(const char* left, const char* right)
{
return strcmp(left, right) < 0;
}
static const char* min_value() { return "\0"; } // I hope this is the minimum
static const char* max_value() {...} // I don't know of any maximum value
};
请注意,它是static const char* max_value()
而不是static int max_value()
。希望这会有所帮助。