-1

我一直在寻找它,但我无法找到解决方案。对不起,这已经发布了。

我必须创建一个 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)();
        }
};
4

1 回答 1

1

我还没有足够的声誉来发表评论。所以我发布一个回复。

@ildjarn:在某些情况下,您stxxl需要。static T min_value()static T max_value()

@Fabrizio:您确定要const char*直接比较两个 s 吗?这就是你通过继承来做的事情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()。希望这可以帮助。

于 2012-04-11T08:20:25.807 回答