我有两个 unordered_sets,需要检查第一个集合的所有元素是否也是第二个集合的元素。
有没有快速的方法来做到这一点,或者我应该使用另一个容器?</p>
最佳答案
只需使用循环(或相应的算法)。复杂度与要测试的范围的大小(大约)呈线性关系。
template <typename UnorderedSet, typename Iterator>
bool contains_all(UnorderedSet&& set, Iterator first, Iterator last)
{
using value_type = std::iterator_traits<Iterator>>::value_type;
return std::all_of(first, last, [&set] (const value_type& value) {
return set.count(value);
});
}
关于c++ - 如何检查 unordered_set 是否重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22206792/