iterator Header
back_inserter()
- Don't work with
set
// va = [ 1 2 3 4 6 9 12 18 36 ]
// vb = [ 1 2 3 6 9 18 27 54 ]
vector<ll> v; // declaring empty set
set_intersection(av.begin(), av.end(), bv.begin(), bv.end(), back_inserter(v)); // inserting all common values of 'set' "av" & "bv" in 'set' "tmp"
// tmp becomes [ 1 2 3 6 9 18 ] ; 'tmp' returns the intersection of "av" & "bv"
cout << *max_element(v.begin(), v.end()) << endl; // 👉 returns the "max" element of the 'vector'
front_inserter()
- Don't work with
set
inserter()
We need a std::inserter
iterator since the set
is as of now empty. We cannot use back_inserter
or front_inserter
with set
because set
doesn't support those operations.
// va = [ 1 2 3 4 6 9 12 18 36 ]
// vb = [ 1 2 3 6 9 18 27 54 ]
set<ll> tmp; // declaring empty set
set_intersection(av.begin(), av.end(), bv.begin(), bv.end(), inserter(tmp, tmp.begin())); // inserting all common values of 'set' "av" & "bv" in 'set' "tmp"
// tmp becomes [ 1 2 3 6 9 18 ] ; 'tmp' returns the intersection of "av" & "bv"
cout << *tmp.rbegin() << endl; // 👉 returns the "last" element of the 'set', "*" gives the value at that particular iterator '*tmp.rbegin()'