std::accumulate
và std::reduce
làm gần như điều tương tự.
Tóm tắt std::reduce
nói lên tất cả:
similar to `std::accumulate`, except out of order
Trong nhiều trường hợp, các hàm này sẽ mang lại kết quả cuối cùng giống nhau và thể hiện cùng chức năng tổng thể. Rõ ràng là nếu bạn có một số tính toán tải rất nặng, v.v. bạn có thể thử nghiệm std::reduce
để liên kết. I E. sự khôn ngoan thông thường ở đây từ góc nhìn của loài chim - bạn có nên luôn luôn bám chặt vào std :: tích lũy trừ khi tối ưu hóa rõ ràng? hoặc chỉ nên mặc định để sử dụng std::reduce
?
Nếu std::reduce
(với mặc định / không có chính sách thực thi nào được chọn) luôn luôn ít nhất là nhanh như std::accumulate
(lưu một vài hướng dẫn) thì tôi nghĩ chỉ nên sử dụng tích lũy khi đơn hàng nghiêm ngặt.