Hãy nói rằng tôi có các đối tượng sau đây:Cách tốt nhất để tổng hợp kết quả của hàm thành viên cho tất cả các phần tử trong vùng chứa là gì?
struct Foo
{
int size() { return 2; }
};
gì là cách tốt nhất (duy trì nhất, dễ đọc, vv) để có được tổng size
của tất cả các đối tượng trong một vector<Foo>
? Tôi sẽ đăng giải pháp của mình nhưng tôi quan tâm đến những ý tưởng tốt hơn.
Cập nhật:
Cho đến nay chúng ta có:
- std :: tích lũy và một functor
- std :: tích lũy và một biểu thức lambda
- đồng bằng ol' cho vòng lặp
Có giải pháp khả thi nào khác không? Bạn có thể tạo điều gì đó có thể bảo trì bằng cách sử dụng boost::bind
hoặc std::bind1st/2nd
không?
'std :: vector vec; vec.size() * 2', vì chúng ta biết rằng 'Foo :: size' luôn trả về 2. :) –
jalf