std::flat_s...insert_range(3)
π
std::flat_set::insert_range π
okay bestie, this is the std::flat_set::insert_range page from the C++ Standard Libary manual β yes, that's the manual name, and yes, we are keeping the spelling exactly as it is. π«Ά
πΈ NAME πΈ
std::flat_set::insert_range β std::flat_set::insert_range
β¨ Synopsis β¨
template< container-compatible-range<value_type> R > (since C++23)
void insert_range( R&& rg );
So this one is a C++23 girlie, and she takes a range and puts it into the set. π
It inserts a copy of each element in the range rg into underlying container c as if by:
for (const auto& e : rg)
c.insert(c.end(), e);
Then, sorts the range of newly inserted elements with respect to compare. Merges the resulting sorted range and the sorted range of pre-existing elements into a single sorted range. Finally, erases all but the first element from each group of consecutive equivalent elements.
Each iterator in the range rg is dereferenced exactly once.
β οΈ The behavior is undefined if rg overlaps with the container. no cap, do not do that. π
π«Ά tiny note from the page: βInformation on iterator invalidation is copied from hereβ β that's the literal wording, bestie.
π Parameters π
rgβ a container compatible range, that is, aninput_rangewhose elements are convertible toT
π¦ Return value π¦
- (none)
π Complexity π
N + MΒ·log(M), whereNissize()before the operation andMisranges::distance(rg).
π Notes π
- Since
insert_rangeperforms an in-place merge operation, that may allocate memory.
π Example π
// Run this code
#include <iostream>
#include <flat_set>
void println(auto, auto const& container)
{
for (const auto& elem : container)
std::cout << elem << ' ';
std::cout << '\n';
}
int main()
{
auto container = std::flat_set{1, 3, 2, 4};
const auto rg = {-1, 3, -2};
#ifdef __cpp_lib_containers_ranges
container.insert_range(rg);
#else
container.insert(rg.begin(), rg.end());
#endif
println("{}", container);
}
Output:
-2 -1 1 2 3 4
π See also π
insertβ inserts elements (public member function)
that's the whole page, bestie! source/version/date: http://cppreference.com β’ 2024.06.10 β’ page std::flat_s...insert_range(3) πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms