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

问题描述 投票:-1回答:1

我有这样的对矢量:

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;
}

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

c++ vector compare similarity std-pair
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.