Skip to main content

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()'