首页 > 解决方案 > 标准::位集::count vs __builtin_popcount

问题描述

比较以下两个表达式

std::bitset<8>(5).count()
__builtin_popcount(5)

哪一个更好?

标签: c++bitset

解决方案


根据 godbolt,bitsetpopcount在最新的 g++ 上产生相同的 asm 输出。但是,正如评论中所提到的,__builtin_popcount它是一个 gcc 扩展,在 x86 以外的其他编译器和其他架构上均不可用。因此,bitset 选项显然更好。


推荐阅读