Chỉ cần nhận ra rằng std::count_if
returns a signed value.Tại sao std :: count_if trả về giá trị đã ký thay vì chưa ký?
Tại sao thiết bị được thiết kế theo cách này? Cả hai đều không có ý nghĩa (kết quả chỉ có thể là số tự nhiên, tức là số nguyên âm) theo ý kiến của tôi, vì nó không cho phép thực hiện điều gì đơn giản như so sánh kết quả này với số size()
của vùng chứa mà không nhận cảnh báo hoặc sử dụng chuyển đổi loại rõ ràng.
Tôi thực sự nghĩ rằng loại trả về phải có size_type
.
Tôi có thiếu gì đó không?
Một số ý nghĩa để trả về 'differ_type' của trình lặp cho' count', vì nó chỉ là sự khác biệt của các đối số, nên giữ giao diện đó cho 'count_if', và nó làm cho ý nghĩa cho 'differ_type' được ký cho các trình vòng lặp hai chiều. – BoBTFish
Tương tự như vậy tại sao không thể tách hai 'std :: list's trong một thời gian không đổi? –
@WojciechFrohmberg: Đơn giản, bạn cần đếm các yếu tố. Danh sách sau khi tạo ra có O (1) '.ize()' ngụ ý nó được lưu trữ, – MSalters