Tôi đọc tệp này (C: \ cygwin \ lib \ gcc \ i686-pc-cygwin \ 3.4.4 \ include \ C++ \ bitset) trên máy tính của tôi.
Xem những
/// 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, đây là nơi _Nw được quy định:
template<size_t _Nw>
struct _Base_bitset
Vì vậy nó là O (n) trong việc thực hiện gcc. Chúng tôi kết luận đặc điểm kỹ thuật không yêu cầu nó tốt hơn O (n). Và không ai trong tâm trí của họ sẽ thực hiện nó theo cách tồi tệ hơn thế. Sau đó chúng ta có thể giả định rằng nó là tồi tệ nhất O (n). Có thể tốt hơn nhưng bạn không bao giờ có thể tin tưởng vào điều đó.
Những gì Tomalak đã đề cập (nhưng không giải thích được * vì anh ấy dường như không an toàn và cần phải khẳng định kiến thức của mình đối với người khác) là STL (Thư viện mẫu chuẩn) là một thuật ngữ không rõ ràng. Một số người trong cộng đồng C++ đã mở rộng về điều này trong [info-wiki cho thẻ] (http://stackoverflow.com/tags/stl/info), nên làm rõ nhận xét của Tomalak. Tóm lại, bạn chỉ nên nói "thư viện chuẩn" hoặc "stdlib", nhưng chúng tôi sẽ biết ý bạn là gì khi bạn nói STL. – GManNickG
@GMan: Không cần tấn công cá nhân. Chúng không được chào đón ở đây trên StackOverflow. Vui lòng điều chỉnh âm thanh của bạn trong tương lai. –