[libcxx-commits] [libcxx] [libc++] Remove unnecessary container constructions in setup code (PR #216141)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Aug 14 00:49:05 PDT 2026
================
@@ -477,31 +477,32 @@ void associative_container_benchmarks(std::string container) {
}
auto insert_iter_iter_bench = [=](bool bench_end_iter, auto& st) {
- const std::size_t size = st.range(0);
- std::vector<Value> in = make_value_types(generate_unique_keys(size + (size / 10)));
- auto skip_start = bench_end_iter ? size : size / 2;
+ const std::size_t size = st.range(0);
+ std::vector<Value> large = make_value_types(generate_unique_keys(size + (size / 10)));
+ auto skip_start = bench_end_iter ? size : size / 2;
std::vector<Value> small;
small.reserve(size / 10);
{ // Split the range
std::vector<Value> tmp;
tmp.reserve(size);
- std::copy_n(in.begin(), skip_start, std::back_inserter(tmp));
- std::copy_n(in.begin() + skip_start, size / 10, std::back_inserter(small));
- std::copy(in.begin() + skip_start + size / 10, in.end(), std::back_inserter(tmp));
+ std::copy_n(large.begin(), skip_start, std::back_inserter(tmp));
+ std::copy_n(large.begin() + skip_start, size / 10, std::back_inserter(small));
+ std::copy(large.begin() + skip_start + size / 10, large.end(), std::back_inserter(tmp));
- in = std::move(tmp);
+ large = std::move(tmp);
}
Container c(small.begin(), small.end());
----------------
philnik777 wrote:
Can we just `insert` into the container directly?
https://github.com/llvm/llvm-project/pull/216141
More information about the libcxx-commits
mailing list