Czytam ten plik (C: \ cygwin \ lib \ gcc \ i686-pc-cygwin \ 3.4.4 \ include \ C++ \ bitset) na moim komputerze.
Patrz te
/// 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;
}
okazji, to jest, gdy _Nw jest określona:
template<size_t _Nw>
struct _Base_bitset
Zatem to O (n) w gcc realizacji. Podsumowując, specyfikacja nie wymaga tego więcej niż O (n). I nikt przy zdrowych zmysłach nie wdroży go w sposób gorszy. Możemy wtedy bezpiecznie założyć, że jest w najgorszym O (n). Być może lepiej, ale nigdy nie możesz na to liczyć.
To, o czym Tomalak wspomniał (ale nie * wyjaśniło *, ponieważ jest najwyraźniej niepewny i wymaga potwierdzenia swojej wiedzy o innych), jest to, że STL (Standard Template Library) jest terminem niejednoznacznym. Niektórzy z nas w społeczności C++ rozwinęli to w [info-wiki dla tagu] (http://stackoverflow.com/tags/stl/info), co powinno wyjaśnić komentarz źródłowy Tomalaka. Mówiąc krótko, powinieneś po prostu powiedzieć "standardowa biblioteka" lub "stdlib", ale będziemy wiedzieć, co masz na myśli mówiąc STL. – GManNickG
@GMan: Nie potrzeba osobistych ataków. Nie są tu mile widziane w StackOverflow. Dostosuj swój ton w przyszłości. –