我需要一个算法或标准库函数来比较两个向量元素,如下所示:
class Utility
{
template <class T>
static bool CheckIfVectorsEquivalent( const std::vector<T> & Vec1,
const std::vector<T> & Vec2)
{
// ???
}
};
在以下规格下工作:
std::vector<int> v1, v2, v3, v4, v5, v6, v7, v8;
// Returns false when not all the elements are matching between vectors
v1.push_back(1);
v1.push_back(3);
v1.push_back(5);
v2.push_back(2);
v2.push_back(3);
v2.push_back(8);
Utility::CheckIfVectorsEquivalent(v1, v2); // Must return false
// Returns true when all the elements match, even if the are not in the same order
v3.push_back(3);
v3.push_back(1);
v3.push_back(7);
v4.push_back(7);
v4.push_back(3);
v4.push_back(1);
Utility::CheckIfVectorsEquivalent(v3, v4); // Must return true
// Returns false when one of the vectors is subset of the other one
v5.push_back(3);
v5.push_back(1);
v5.push_back(7);
v6.push_back(7);
v6.push_back(3);
v6.push_back(1);
v6.push_back(18);
v6.push_back(51);
Utility::CheckIfVectorsEquivalent(v5, v6); // Must return false
// Returns true when the both vectors are empty
Utility::CheckIfVectorsEquivalent(v7, v8); // Must return true
是否有任何标准(使用 STL)方法可以做到这一点?如果没有,我该如何编写这个算法?太让我困惑了。