Ho letto questo file (C: \ cygwin \ lib \ gcc \ i686-pc-cygwin \ 3.4.4 \ include \ C++ \ bitset) sul mio computer.
vedere questi
/// Returns the number of bits which are set.
size_t
count() const { return this->_M_do_count(); }
size_t
_M_do_count() const
{
size_t __result = 0;
for (size_t __i = 0; __i < _Nw; __i++)
__result += __builtin_popcountl(_M_w[__i]);
return __result;
}
BTW, questo è dove si specifica _Nw:
template<size_t _Nw>
struct _Base_bitset
Così è O (n) nell'attuazione gcc. Concludiamo che le specifiche non lo richiedono meglio di O (n). E nessuno sano di mente lo implementerà in un modo peggiore di quello. Possiamo quindi tranquillamente supporre che si tratti nel caso peggiore O (n). Forse meglio ma non puoi mai contare su questo.
Quello che Tomalak ha menzionato (ma non è riuscito a * spiegare * perché è apparentemente insicuro e ha bisogno di affermare la propria conoscenza rispetto ad altri) è che STL (Standard Template Library) è un termine ambiguo. Alcuni di noi nella comunità C++ si sono espansi su questo nella [info-wiki per il tag] (http://stackoverflow.com/tags/stl/info), che dovrebbe chiarire il commento della fonte Tomalak. In breve, dovresti solo dire "libreria standard" o "stdlib", ma sapremo cosa intendi quando dici STL. – GManNickG
@GMan: Nessuna necessità di attacchi personali. Non sono i benvenuti qui su StackOverflow. Si prega di regolare il tono in futuro. –