Ich habe diese Datei (C: \ cygwin \ lib \ gcc \ i686-pc-cygwin \ 3.4.4 \ include \ C++ \ bitset) auf meinem Computer gelesen.
Siehe diese
/// 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, das ist, wo _Nw angegeben ist:
template<size_t _Nw>
struct _Base_bitset
So ist es O (n) in gcc Umsetzung. Wir schließen daraus, dass die Spezifikation es nicht besser als O (n) erfordert. Und niemand, der vernünftig denkt, wird es schlimmer machen. Wir können dann sicher annehmen, dass es im schlimmsten Fall O (n) ist. Vielleicht besser, aber darauf können Sie sich nie verlassen.
Was Tomalak erwähnt (aber nicht * erklären * konnte, weil er anscheinend unsicher ist und sein Wissen gegenüber anderen behaupten muss) ist, dass STL (Standard Template Library) ein mehrdeutiger Begriff ist. Einige von uns in der C++ - Community haben dies im [info-wiki für das Tag] (http://stackoverflow.com/tags/stl/info) erweitert, was den Kommentar der Quelle Tomalak verdeutlichen soll. Kurz gesagt, Sie sollten einfach "Standard-Bibliothek" oder "StdLib" sagen, aber wir werden wissen, was Sie meinen, wenn Sie STL sagen. – GManNickG
@GMan: Keine Notwendigkeit für persönliche Angriffe. Sie sind hier auf StackOverflow nicht willkommen. Bitte passen Sie Ihren Ton in Zukunft an. –