C ++比较容器中所有对的第一个和第二个元素

我有像这样的对 - std :: vector <std :: pair <int / Val1 /,int / Val2 />> myVector;

对'myVector'中第一个和第二个元素(Val1和Val2)中的每对进行比较的有效方法是相同还是不相同。

我能想到的唯一方法是 -

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

尽管在例子中我使用了一对整数,但问题是关于具有相同类型的第一和第二元素的任何对。


尽管在例子中我使用了一对整数,但问题是关于具有相同类型的第一和第二元素的任何对。

你可能会问使用这样的模板化函数:

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;
}
链接地址: http://www.djcxy.com/p/79201.html

上一篇: C++ Compare first and second element for all pairs in container

下一篇: Merging vectors without extra memory