我想了解这个功能是什么,它背后的逻辑。功能背后的逻辑
我已经搜索了自己的每一项(例如:size_t
,bitset
...),但我仍然想知道逻辑是如何流动的?
size_t popcount(size_t n) {
std::bitset<sizeof(size_t) * CHAR_BIT> b(n);
return b.count();
}
我想了解这个功能是什么,它背后的逻辑。功能背后的逻辑
我已经搜索了自己的每一项(例如:size_t
,bitset
...),但我仍然想知道逻辑是如何流动的?
size_t popcount(size_t n) {
std::bitset<sizeof(size_t) * CHAR_BIT> b(n);
return b.count();
}
返回已设置的位集b
中的位数(即值为1)。
size_t popcount(size_t n)
通过n
作为要在bitset中设置的位数。
std::bitset<sizeof(size_t) * CHAR_BIT> b(n);
创建std::bitset
return b.count();
检查documentation为std::bitset
看什么std::bitset::count
回报和回答你的问题。正如你看到的std::bitset
是一个标准库提供的模板类用于存储bits.Once你明白,休息是非常令人兴奋的文档,知道这个类提供了什么功能,并将其映射到您的代码如何使用它。
你认为@Sara从你提供这样的答案中学到了什么。我会告诉你什么:她(或他)知道没有必要自己做任何工作。只是在SO上发布一个关于任何琐事的问题,并让ALS回答它。 – 2013-03-27 04:48:55
@ Cheersandhth.-Alf:我希望现在能做到。我明白你想说什么,但我的猜测是OP不明白'std :: bitset'是什么,因此是问题。 – 2013-03-27 04:51:10
@ Cheersandhth.-Alf:你一直在这里;几乎所有进来的人都在寻求某种知识。为什么提供这些知识是一个问题,而且,你在哪里画线?不要回答 - 自[tag:家庭作业]以来的普遍共识已被弃用,因为我们只根据常见问题解答中的规则画线。如果这个网站是Google搜索的话,那么每天在这个网站上问的绝大多数问题都可以得到解答。哎呀,我敢打赌,我自己回答了几百个问题。 – NotMe 2013-03-27 05:07:23
只是做更多的“自己搜索每个术语” – 2013-03-27 04:47:56