sort对二维char数组排序?

    xiaoxiao2021-03-25  162

    C++中如何用std::sort对二维char数组排序?


    问题描述: 定义一个 char str[10005][15],要对10000个char数组 风格的字符串排序.

    典型错误做法:

    bool cmp(char a[], char b[]){ int temp = strcmp(a,b); return temp<0; } ...... sort(str, str+n, cmp);


    解决办法有: 1.用qsort 2.改用string 3.把二维数组 改成struct的一维数组


    1.用qsort:

    int cmp(const void *a, const void *b){ char *s1 = (char *)a; char *s2 = (char *)b; return strcmp(s1,s2); } ...... qsort(str, num, 52, cmp);

    原文链接


    2.改用string

    bool cmp(string a, string b){ //由于char数组不能这么排序,所以使用string return a<b; } ...... sort(v.begin(), v.end(), cmp); //v为存放string的vector

    3.把二维数组 改成struct的一维数组,

    见机试指南
    转载请注明原文地址: https://ju.6miu.com/read-2827.html

    最新回复(0)