diff --git a/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp b/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp index d8688eaa203cb898279f4334e3cf959e8f843121..7d3a0b5a718917a35c4451cefcacf53d37f45b4e 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));