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