diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 82d0278855fb83fc9de040ee5b67884bc1f4e799..faedb6a65decd14ff03b610e69d8852b1481b4f0 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -57,7 +57,7 @@ DynamicModel::copyHelper(const DynamicModel &m)
     first_chain_rule_derivatives[it.first] = f(it.second);
 
   for (const auto &it : m.equation_type_and_normalized_equation)
-    equation_type_and_normalized_equation.push_back({it.first, f(it.second)});
+    equation_type_and_normalized_equation.emplace_back(it.first, f(it.second));
 
   for (const auto &it : m.blocks_derivatives)
     {
@@ -4464,7 +4464,7 @@ DynamicModel::getPacMaxLag(const string &pac_model_name, map<pair<string, string
                 break;
               }
         string eq = eqtag_and_lag[{pac_model_name, eqtag}].first;
-        eqtag_and_lag[{pac_model_name, eqtag}] = {eq, equation->PacMaxLag((*(endogs.begin())).first)};
+        eqtag_and_lag[{pac_model_name, eqtag}] = {eq, equation->PacMaxLag(endogs.begin()->first)};
       }
 }
 
diff --git a/src/ModelEquationBlock.cc b/src/ModelEquationBlock.cc
index 67778bed126960525bf1ab3144912a9fc69a3a6b..cfb513ce38ba055315e0bc7da74baa220484cb24 100644
--- a/src/ModelEquationBlock.cc
+++ b/src/ModelEquationBlock.cc
@@ -36,7 +36,7 @@ SteadyStateModel::SteadyStateModel(const SteadyStateModel &m) :
   static_model {m.static_model}
 {
   for (const auto &it : m.def_table)
-    def_table.push_back({it.first, it.second->clone(*this)});
+    def_table.emplace_back(it.first, it.second->clone(*this));
 }
 
 SteadyStateModel &
@@ -48,7 +48,7 @@ SteadyStateModel::operator=(const SteadyStateModel &m)
 
   def_table.clear();
   for (const auto &it : m.def_table)
-    def_table.push_back({it.first, it.second->clone(*this)});
+    def_table.emplace_back(it.first, it.second->clone(*this));
 
   return *this;
 }
@@ -298,7 +298,7 @@ Epilogue::Epilogue(const Epilogue &m) :
   DynamicModel {m}
 {
   for (const auto &it : m.def_table)
-    def_table.push_back({it.first, it.second->clone(*this)});
+    def_table.emplace_back(it.first, it.second->clone(*this));
 }
 
 Epilogue &
@@ -308,7 +308,7 @@ Epilogue::operator=(const Epilogue &m)
 
   def_table.clear();
   for (const auto &it : m.def_table)
-    def_table.push_back({it.first, it.second->clone(*this)});
+    def_table.emplace_back(it.first, it.second->clone(*this));
 
   return *this;
 }
diff --git a/src/ModelTree.cc b/src/ModelTree.cc
index febb1e682c879ebd0c38f86c32bc506f42556e57..3b438355391e1b42f5c8245e306f13d23a6c58d4 100644
--- a/src/ModelTree.cc
+++ b/src/ModelTree.cc
@@ -411,7 +411,7 @@ ModelTree::evaluateAndReduceJacobian(const eval_context_t &eval_context, jacob_m
             {
               if (verbose)
                 cout << "the coefficient related to variable " << var << " with lag " << lag << " in equation " << eq << " is equal to " << val << " and is set to 0 in the incidence matrix (size=" << symbol_table.endo_nbr() << ")" << endl;
-              jacobian_elements_to_delete.insert({ eq, deriv_id });
+              jacobian_elements_to_delete.emplace(eq, deriv_id);
             }
           else
             {
diff --git a/src/StaticModel.cc b/src/StaticModel.cc
index ea2b3e1e77483796e7a32ee0e03fbaa3c7c15045..5a75c2c2d32798e5c5488521fcde5af98a97c21e 100644
--- a/src/StaticModel.cc
+++ b/src/StaticModel.cc
@@ -55,7 +55,7 @@ StaticModel::copyHelper(const StaticModel &m)
     first_chain_rule_derivatives[it.first] = f(it.second);
 
   for (const auto &it : m.equation_type_and_normalized_equation)
-    equation_type_and_normalized_equation.push_back({it.first, f(it.second)});
+    equation_type_and_normalized_equation.emplace_back(it.first, f(it.second));
 
   for (const auto &it : m.blocks_derivatives)
     {