在STXXL映射中使用const char*
Using const char* in a STXXL map
我已经找过了,但一直找不到解决方案。很抱歉,这已经发布了。
我必须创建一个stxxl::map结构,将constchar*映射到constchar*(最好是字符串到字符串,但我知道stxxl容器不接受非POD)
我在为const-char*定义comp_type结构时遇到问题。有人举过这样的例子吗?
这是我写的:
struct comp_type : public std::less<const char*>
{
static int max_value()
{
return (std::numeric_limits<char>::max)();
}
};
我还没有足够的声誉发表评论。所以我发布了一个回复。
@ildjarn:对于stxxl
,在某些情况下需要static T min_value()
和static T max_value()
。
@法布里齐奥:你确定要直接比较两个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 " "; } // 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()
。希望这能有所帮助。