我正在尝试找到一种简单的方法来检查一个 vector 是否是另一个 vector 的子集,而无需对 vector 中元素的顺序进行排序。这两个 vector 都包含随机数元素。
std::includes
似乎只适用于排序范围。我怎样才能做到这一点?
最佳答案
复制 vector 。对复印件进行排序。然后在拷贝上使用 std::includes
。
template <typename T>
bool IsSubset(std::vector<T> A, std::vector<T> B)
{
std::sort(A.begin(), A.end());
std::sort(B.begin(), B.end());
return std::includes(A.begin(), A.end(), B.begin(), B.end());
}
关于c++ - 如何检查一个 vector 是否是另一个在 C++ 中的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6906521/