我使用std ::地图在C++中,它的排序按字母方向键,这样的:由第一字符的排序字符串
AAA, AA0, AA1, AAB, AC1 = AA0->AA1->AAA->AAB->AC1
但我想给它以不同的方式进行排序:
AAA, AA0, AA1, AAB, AC1 = AAA->AAB->AA0->AA1->AC1
如何为std :: map编写比较类,这将解决我的问题? 我完全不知道该怎么做。 这是我比较类的定义:
struct Comp
{
bool operator()(const std::string& lhs, const std::string& rhs) const
{
//dont know what should I write here
};
};
我觉得@juanchopanza故意留下,作为你的锻炼。 :P还值得指出的是,如果你想经常处理这样的字符串,最好提供一个用户定义的'char_traits'。 – 2013-05-14 14:26:01
第二顺序是什么意思?你能用一个很好的算法来描述它吗? – deepmax 2013-05-14 14:28:31
首先以明文形式编写算法,然后将这些单词翻译为代码。 IOW没有一个明确的定义(不仅仅是例子),你不能希望编码任何东西。有了它,它通常很简单。 – Angew 2013-05-14 14:29:10