#include #include // Required for std::filesystem #include #include #include using namespace std ; template < class T1 , class T2 > void printMap( map mapObj1 ) { cout << "Start -----------------" << endl ; for ( auto pair1 : mapObj1 ) { cout << pair1.first << " : " << pair1.second << endl ; } cout << "End -----------------" << endl ; } template < class T1 > void printSet( set< T1 > setObj1 ) { cout << "Start -----------------" << endl ; for ( auto element1 : setObj1 ) { cout << element1 << endl ; } cout << "End -----------------" << endl ; } int main() { std::map src {{1, "one"}, {2, "two"}, {3, "buckle my shoe"}}; std::map dst {{3, "three"}}; dst.insert(src.extract(src.find(1))); // Cheap remove and insert of { 1, "one" } from `src` to `dst`. // cout << "dst:" << dst << endl ; printMap( src ) ; printMap( dst ) ; dst.insert(src.extract(2)); // Cheap remove and insert of { 2, "two" } from `src` to `dst`. printMap( dst ) ; std::set src_set {1, 3, 5}; std::set dst_set {2, 4, 5}; dst_set.merge( src_set ) ; printSet( dst_set ) ; std::map map1 {{1, "one"}, {2, "two"}, {3, "three"}}; auto node = map1.extract(2); node.key() = 4; map1.insert( std::move(node) ); printMap( map1 ) ; return 1 ; }