我想了解這個功能是什麼,它背後的邏輯。功能背後的邏輯
我已經搜索了自己的每一項(例如: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