std::bitset<N>::count - cppreference.com

From cppreference.com

std::size_tcount()const;(noexcept since C++11)
(constexpr since C++23)Returns the number of bits that are set to true.

Return value

Number of bits that are set to true.

Example

Run this code

#include<bitset>#include<iostream>constexprautopopcount(unsignedx)noexcept{unsignednum{};for(;x;++num,x&=(x-1));returnnum;}static_assert(popcount(0b101010)==std::bitset<8>{0b101010}.count());intmain(){std::bitset<8>b("00010010");std::cout<<"Initial value: "<<b<<'\n';// Find the first unset bitstd::size_tidx=0;while(idx<b.size()&&b.test(idx))++idx;// Continue setting bits until half the bitset is filledwhile(idx<b.size()&&b.count()<b.size()/2){b.set(idx);std::cout<<"Setting bit "<<idx<<": "<<b<<'\n';while(idx<b.size()&&b.test(idx))++idx;}}Output:

Initial value: 00010010 Setting bit 0: 00010011 Setting bit 2: 00010111 See also

returns the number of bits that the bitset holds
(public member function)

[edit]

(C++20)

counts the number of 1 bits in an unsigned integer
(function template)

[edit]