From d0d1dc443fb6230a410bcd3016d85230701b4b18 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Tue, 11 Jun 2019 13:28:01 +0200 Subject: [PATCH] [CL] Use copy algo. in expression stmts creation. Also reserve memory beforehand. --- ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp b/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp index d8688eaa203..7d3a0b5a718 100644 --- a/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp +++ b/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp @@ -29,17 +29,18 @@ std::vector<ReactionRate> createReactionRates( //! \ogs_file_param{prj__chemical_system__rates__rate__kinetic_reactant} rate_config.getConfigParameter<std::string>("kinetic_reactant"); - std::vector<std::string> expression_statements; auto const expression_config = //! \ogs_file_param{prj__chemical_system__rates__rate__expression} rate_config.getConfigSubtree("expression"); - for ( - auto const& expression_statement : + auto const& statements = //! \ogs_file_param{prj__chemical_system__rates__rate__expression__statement} - expression_config.getConfigParameterList<std::string>("statement")) - { - expression_statements.push_back(expression_statement); - } + expression_config.getConfigParameterList<std::string>("statement"); + + std::vector<std::string> expression_statements; + expression_statements.reserve(statements.size()); + std::copy(begin(statements), + end(statements), + back_inserter(expression_statements)); reaction_rates.emplace_back(std::move(kinetic_reactant), std::move(expression_statements)); -- GitLab