按照二进制1的个数对数组进行排序
创始人
2024-08-23 21:00:30
0

可以通过自定义一个比较函数来实现按照二进制1的个数对数组进行排序。比较函数里面可以使用位运算来计算每个数的二进制1的个数,然后根据这个个数来进行比较。

以下是代码示例:

#include 
#include 
#include 
using namespace std;

bool compare(int a, int b) {
    int countA = __builtin_popcount(a);
    int countB = __builtin_popcount(b);   //使用内置函数来计算二进制中1的个数
    return countA < countB;
}

int main() {
    vector nums = {2, 5, 1, 7, 10};
    sort(nums.begin(), nums.end(), compare);
    for(int i:nums) {
        cout << i << " ";
    }
    return 0;
}

输出结果为:1 2 5 7 10

其中,__builtin_popcount是一个内置函数,可以直接用来计算一个整数二进制中1的个数。然后自定义的比较函数中,比较的是每个数的二进制中1的个数,以此来确定大小关系。最后使用sort函数将数组按照自定义的比较函数进行排序。

相关内容

热门资讯

透视数据!竞技联盟辅助(透视)... 透视数据!竞技联盟辅助(透视)教你攻略(2021已更新)(哔哩哔哩)亲,关键说明,竞技联盟辅助赛季回...
辅助透视!aapoker公共底... 辅助透视!aapoker公共底牌(透视)辅助(好像存在有挂)1、让任何用户在无需aapoker公共底...
透视有挂!佛手在线大菠萝辅助(... 透视有挂!佛手在线大菠萝辅助(透视)科技教程(2026已更新)(哔哩哔哩);1、该软件可以轻松地帮助...
透视教程!aapoker怎么提... 透视教程!aapoker怎么提高中牌率(透视)透视脚本(切实有挂)1、玩家可以在aapoker怎么提...
透视黑科技!fishpoker... 透视黑科技!fishpoker透视底牌(透视)2025教程(2021已更新)(哔哩哔哩);1、构建自...
透视教程!红龙poker辅助平... 透视教程!红龙poker辅助平台(透视)详细教程(2025已更新)(哔哩哔哩);1、金币登录送、破产...
透视系统!aapoker透视脚... 透视系统!aapoker透视脚本入口(透视)插件(一直真的是有挂);1、操作简单,无需注册,只需要使...
透视辅助!epoker透视底牌... 透视辅助!epoker透视底牌(透视)可靠教程(2021已更新)(哔哩哔哩)透视辅助!epoker透...
透视游戏!aapoker辅助插... 透视游戏!aapoker辅助插件工具(透视)ai插件(本来真的有挂);1、aapoker辅助插件工具...
透视线上!xpoker辅助工具... 透视线上!xpoker辅助工具(透视)普及教程(2025已更新)(哔哩哔哩)一、xpoker辅助工具...