提问者:小点点

设置交集和迭代器


有没有可能将set_conterction或其他set_*算法函数的输出直接添加到set类型中? 到目前为止,我只能想到一种方法,直接添加到允许back_inserter的东西中。

#include <set>
#include <algorithm>
#include <vector>
#include <iterator>
#include <iostream>
using namespace std;

int main()
{
    // sorted so ok for set operations
    set<int> s = {2, 3, 1};
    set<int> s2 = {1};
    vector<int> v;
    
    set_intersection(s.begin(), s.end(), s2.begin(), s2.end(),
             back_inserter(v));

    copy(v.begin(), v.end(), ostream_iterator<int>(cout, ","));
             
    return 0;
}

共1个答案

匿名用户

是,只需使用inserter而不是back_inserter

set<int> s = {2, 3, 1};
set<int> s2 = {1};
set<int> s3;

set_intersection(s.begin(), s.end(), s2.begin(), s2.end(),
         inserter(s3));