我有一个std :: set< int> (s)和std :: vector< int> (五).向量保证被排序/唯一.我想知道v的所有元素是否在s中(或者只是停止在v的第一个元素不在s中).我可以将v转换成一个集合并做==测试,但是有没有另外一种方式而不改变容器类型?
解决方法
std::includes算法是什么?
以下是一个简短的用法示例:
vector<int> v1 { 1,2,4,8 }; vector<int> v2 { 1,3,8 }; set<int> s { 0,1,8,16 }; cout << includes(s.begin(),s.end(),v1.begin(),v1.end()) << endl; cout << includes(s.begin(),v2.begin(),v2.end()) << endl;
输出:
1 0