我有一個問題,通常很適合Java流,但我目前正在使用C++ 11。C++中的地圖過濾和摺疊
我會解決的Java這個問題的方法是:
int solution = myList.stream() //myList is an arraylist of MyClass
.mapToInt(MyClass::GetInt)
.sum();
探索C++標準庫一點後,我瞭解到, std::transform
和std::accumulate
存在。
我唯一的問題是,std::transform
看來似乎只能從T
類型映射到鍵入T
,在這裏我需要從T
類型映射到輸入V
(整數),這樣我纔可以累積。
理想情況下,我希望能夠將這個邏輯鏈接在一起,而不是讓臨時數組存儲每個步驟的中間結果。
有沒有一種慣用的C++ 11的方法來實現這一點?
閱讀再次提供'accumulate'的文檔。然後再次。 –
「似乎只能從T型到T型」 - 你確定嗎? –