c++ - 如何检查一个 vector 是否是另一个在 C++ 中的子集

标签 c++ vector

我正在尝试找到一种简单的方法来检查一个 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/

相关文章:

c++ - 析构函数如何工作?

c++ - 使用 C++ 通过互联网发送 vector

c++ - 如何在 vector<vector<pair<int,int>> 中插入一个 vpii >

matlab - 最小化向量索引开销

c++ - 两个对象 QT 之间的示例 SLOT/SIGNAL

c++ - 静态初始化访问冲突

c++ - Linux 中的嵌套 vector

c++ - 如何删除具有特定条件的 vector 中的所有元组?

python - 如何用变量来寻址多维数组的元素?

c++ - 使用较旧的 C++ 实现在编译时检查一些编译时定义