From 5e7d49b7ded01fea7381409705e04e8a8de8df1f Mon Sep 17 00:00:00 2001 From: Siarhei Fedartsou Date: Sat, 6 Jul 2024 12:33:56 +0300 Subject: [PATCH] Add .reserve(...) to assembleGeometry function --- include/engine/guidance/assemble_geometry.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/engine/guidance/assemble_geometry.hpp b/include/engine/guidance/assemble_geometry.hpp index 4001f6089..e6925c51f 100644 --- a/include/engine/guidance/assemble_geometry.hpp +++ b/include/engine/guidance/assemble_geometry.hpp @@ -37,6 +37,14 @@ inline LegGeometry assembleGeometry(const datafacade::BaseDataFacade &facade, { LegGeometry geometry; + // each container will at most have `leg_data.size()` + 1/2 elements in it + // these additional 1/2 elements come from processing of very first and very last segment + geometry.locations.reserve(leg_data.size() + 2); + geometry.segment_distances.reserve(leg_data.size() + 1); + geometry.segment_offsets.reserve(leg_data.size() + 1); + geometry.annotations.reserve(leg_data.size() + 1); + geometry.node_ids.reserve(leg_data.size() + 2); + // segment 0 first and last geometry.segment_offsets.push_back(0); geometry.locations.push_back(source_node.location);