2014-05-14 27 views

回答

5
#include <algorithm> 
#include <functional> 
#include <vector> 

std::vector<int> vecIntsA{1, 2, 3, 4}; 
std::vector<int> vecIntsB{5, 6, 7, 8}; 
std::vector<int> vecIntsC(vecIntsA.size(), 0) 

std::transform(vecIntsA.begin(), vecIntsA.end(), 
       vecIntsB.begin(), vecIntsC.begin(), op); 

其中op是二元操作,std::plus<int>()或使用自定義的求和函數:

int sumInt(const int& a, const int& b) 
{ 
    return a + b; 
} 

用C++ 14,你甚至可以刪除該類型的任何明確提及並使用剛剛std::plus<>()

std::transform(vecIntsA.begin(), vecIntsA.end(), 
       vecIntsB.begin(), vecIntsC.begin(), std::plus<>()); 
+0

'op'還可以'的std ::加 {}'。 – 0x499602D2

+0

使用C++ 14,你甚至可以刪除任何明確提及的類型 - 「std :: plus <>()' – Praetorian

+0

@Praetorian加入了這個回答 – 4pie0

5
#include <algorithm> 
#include <functional> 

std::transform(vecInstA.begin(), vecInstA.end(), 
       vecInstB.begin(), vecInstC.begin(), std::plus<int>()); 
相關問題