From cppreference.com
voidreplace(key_container_type&&key_cont,mapped_container_type&&mapped_cont);(since C++23)Replaces the underlying containers
. Equivalent to:
c.keys=std::move(key_cont);c.values=std::move(mapped_cont);The following conditions must be met:
The expression key_cont.size()==mapped_cont.size() is true,
The elements of key_cont are sorted with respect to
, and
key_cont does not contain equal elements. Otherwise, the behavior is undefined.
Parameters
keys_cont - a sorted keys container of type KeyContainer, the contents of which will be moved into *thismapped_cont - a container of mapped values of type MappedContainer, the contents of which will be moved into *thisComplexity
Equals to complexity of
applied to adapted containers.
Example
Run this code
#include<algorithm>#include<cassert>#include<flat_map>#include<print>#include<utility>#include<vector>intmain(){std::vector<int>keys{1,2,3};assert(std::ranges::is_sorted(keys));std::vector<double>values{2.2,3.3,1.1};assert(keys.size()==values.size());std::flat_map<int,double>map;assert(map.empty());map.replace(std::move(keys),std::move(values));assert(map.size()==3);assert(map.keys().size()==3);assert(map.values().size()==3);assert(keys.empty());assert(values.empty());std::println("{}",map);}Output:
{1: 2.2, 2: 3.3, 3: 1.1} See also
extracts the underlying containers
(public member function)