Thuật toán STL độc lập (như std::count_if
) lấy cặp lặp. Trong mọi trường hợp mà tôi sử dụng những người (và trong tất cả các ví dụ tôi đã nhìn thấy trực tuyến!), Tôi thấy mình gõThuật toán STL lấy toàn bộ vùng chứa chứ không phải là .begin(), end() là arg?
std::count_if(myContainer.begin(),myContainer.end(), /* ... */);
Có một lý do tại sao các mẫu viết tắt của phong cách
std::count_if(myContainer, /* ... */);
không cung cấp, cho rằng nhiều hơn không phải là operaation thực hiện trên toàn bộ container? Tôi đã bỏ qua nó? Câu trả lời có khác với C++ 11 và C++ 03 không?
Đây là một quyết định thiết kế đơn giản. Nhiều người không tìm thấy nó như một sự lựa chọn tốt (xem http://www.slideshare.net/rawwell/iteratorsmustgo). Boost cung cấp các thuật toán đó bằng cách sử dụng khái niệm Phạm vi của chúng. – visitor