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

C++ Compare first and second element for all pairs in container

本文关键字:第一个 第二个 元素 比较 C++      更新时间:2023-10-16

我有这样的对向量:

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;
}
相关文章: