FreeBSD Manual Pages
std::multimap::merge(3) C++ Standard Libary std::multimap::merge(3) NAME std::multimap::merge - std::multimap::merge Synopsis template<class C2> (1) (since C++17) void merge( std::map<Key, T, C2, Allocator>& source ); template<class C2> (2) (since C++17) void merge( std::map<Key, T, C2, Allocator>&& source ); template<class C2> (3) (since C++17) void merge( std::multimap<Key, T, C2, Allocator>& source ); template<class C2> (4) (since C++17) void merge( std::multimap<Key, T, C2, Allocator>&& source ); Attempts to extract ("splice") each element in source and insert it into *this using the comparison object of *this. No elements are copied or moved, only the internal pointers of the container nodes are repointed. All pointers and references to the transferred ele- ments remain valid, but now refer into *this, not into source. The behavior is undefined if get_allocator() != source.get_alloca- tor(). Parameters source - compatible container to transfer the nodes from Return value (none) Exceptions Does not throw unless comparison throws. Complexity N*log(size()+N)), where N is source.size(). Example // Run this code #include <map> #include <iostream> #include <string> int main() { std::multimap<int, std::string> ma {{1, "apple"}, {5, "pear"}, {10, "banana"}}; std::multimap<int, std::string> mb {{2, "zorro"}, {4, "batman"}, {5, "X"}, {8, "alpaca"}}; std::multimap<int, std::string> u; u.merge(ma); std::cout << "ma.size(): " << ma.size() << '\n'; u.merge(mb); std::cout << "mb.size(): " << mb.size() << '\n'; for(auto const &kv: u) std::cout << kv.first << ", " << kv.second << '\n'; } Output: ma.size(): 0 mb.size(): 0 1, apple 2, zorro 4, batman 5, pear 5, X 8, alpaca 10, banana See also extract extracts nodes from the container (C++17) (public member function) inserts elements insert or nodes (since C++17) (public member function) http://cppreference.com 2022.07.31 std::multimap::merge(3)
NAME | Synopsis | Parameters | Return value | Exceptions | Complexity | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::multimap::merge&sektion=3&manpath=FreeBSD+Ports+15.0>
