vector&#60string&#62排序/vector按照自定义规则排序(c++)

1. vector排序

#include<vector>
#include<string>
#include<algorithm> //内含sort函数
using namespace std;

int main() {
    vector<string> vec = { "cab", "abc", "cba" };
    sort(vec.begin(), vec.end());
    for (auto s : vec) { cout << s << endl; } //显示排序后的vec
    return 0;
}

排序前:vec = { "cab", "abc", "cba" };
排序后:vec = { "abc", "cab", "cba" };

2. vector按照自定义规则排序

(剑指offer:把数组排列成最小的数)

class Solution {
public:
    string PrintMinNumber(vector<int> numbers) {
        sort(numbers.begin(), numbers.end(), cmp);
        string ans = "";
        for (auto n : numbers) {
            ans += to_string(n);
        }

        return ans;
    };

    static bool cmp(int a, int b) { //定义比较规则时static很重要,否则可能报错
        string ab = to_string(a) + to_string(b);
        string ba = to_string(b) + to_string(a);
        return ab < ba;
    } 
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值