排序结构数组(卡片)

时间:2017-11-16 16:27:56

标签: c++ sorting struct overloading

我正在制作一个二十一点游戏,并创建了一个数组作为用户处理的手。我希望能够对它进行排序,以便按照数字顺序对手进行排序,这样可以更简单地确定用户拥有的手的类型。这是我的卡片:

struct ACard{
    int num;
    const char *pic;
};

我想按int num对数组进行排序。我试图只使用一个简单的插入排序来完成排序,但我相信我需要重载操作符这样做,但我很难这样做,因为我以前从未重载这样的结构。到目前为止,这就是我所拥有的:

        int i,j;
        ACard key;
        for(int i = 1; i < 5; i++){
            key = userHand[i].num;
            j = i - 1;

            while(j >= 0 && userHand[j].num > key){
                userHand[j + 1] = userHand[j];
                j = j - 1;
            }
            userHand[j + 1] = key;
        }

*注意userHand是我希望排序的ACard's数组。

1 个答案:

答案 0 :(得分:2)

使用STL容器,您可以使用$this->url->link('some/thingthing', 'variable data')功能。前两个参数定义要排序的元素范围。第三个参数定义了用于自定义元素比较的std::sort函数(可以使用lambda表达式)。

LessThan