2017-07-16 51 views
-2

我有一對這樣的載體 - 的std ::矢量<的std ::對< INT/VAL1 /,INT/VAL2 />> myVector;C++比較第一和第二元件的所有對在容器

比較'myVector'中第一個和第二個元素(Val1和Val2)中每個對的有效方式是相同還是不相同?我可以想到的是

的唯一方法 - 儘管示例中我用整數對

bool IsFirstAndSecondSame(vector<pair<T, T>> myVector) 
{ 
    for(auto valuePair : myVector) 
    { 
     if(valuePair.first != valuePair.second) 
      return false' 
    } 
    return true; 
} 

,問題是大約具有相同類型的第一和第二元件的任何對。

+2

'矢量> myVector' ??? - 你不能通過你問這個問題的方式獲得幫助,代碼沒有任何意義。 C++中的'cosnt'是什麼? ...檢查你的拼寫。在詢問中付出很大的努力...並且你會得到快速的答案。發佈有效的代碼片段。請發佈[最小,完整和可驗證示例](https://stackoverflow.com/help/mcve) – WhiZTiM

+0

使用'std :: all_of'和一個合適的函數。 – molbdnilo

+0

謝謝@molbdnilo。 – adsarode

回答

0

儘管在例子中我使用了一對整數,但問題是關於具有相同類型的第一和第二元素的任何對。

你可能會問關於使用這樣的模板函數:

template<typename T> 
bool IsFirstAndSecondSame(const vector<pair<T, T>>& myVector) // const 
                   // ^^^^^ 
                   // makes no sense 
                   // with free functions 
{ 
    for(const auto& valuePair : myVector) 
    { 
     if(valuePair.first != valuePair.second) 
      return false' 
    } 
    return true; 
} 
相關問題