我想对一组 C 风格的字符串进行排序,但我不知道如何正确创建比较函数。
//the array
char foo[2][4] = { "abc", "cde" };
//the comparison function
bool cmp(char * a, char * b) //<- actually passing parameters causes trouble
{
for (int i = 0; i < 4; i++)
if (a[i] < b[i])
return true;
else if (a[i] > b[i])
return false;
return true;
}
//sorting
std::sort(foo, foo + 2, &cmp);
我希望这段代码尽可能快,所以我不想使用向量或结构并将它们作为参考传递。
任何帮助将不胜感激。
//编辑我为不准确而道歉。我不想重新实现字典排序,因为有一个 STL 函数可以适当地完成它。比较部分并不重要。我只想访问字符串的元素(在本例中为“字母”),做任何我想做的事情,并通过返回 true 或 false 来影响 std::sort 函数。
看看评分最高的响应:c++ sort with structs 我想对一组 C 字符串(不是结构)做同样的事情——比较本身并不重要。