diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index a4c6ae77a4df8e5819870f8f43bf06f1faa7034c..1bf3a6ac955ad5ec9f4e7c6e67e48186240773e7 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -6917,6 +6917,7 @@ AbstractExternalFunctionNode::computeDerivative(int deriv_id)
 {
   assert(datatree.external_functions_table.getNargs(symb_id) > 0);
   vector<expr_t> dargs;
+  dargs.reserve(arguments.size());
   for (auto argument : arguments)
     dargs.push_back(argument->getDerivative(deriv_id));
   return composeDerivatives(dargs);
@@ -6930,6 +6931,7 @@ AbstractExternalFunctionNode::computeChainRuleDerivative(
 {
   assert(datatree.external_functions_table.getNargs(symb_id) > 0);
   vector<expr_t> dargs;
+  dargs.reserve(arguments.size());
   for (auto argument : arguments)
     dargs.push_back(argument->getChainRuleDerivative(deriv_id, recursive_variables,
                                                      non_null_chain_rule_derivatives, cache));
@@ -7405,6 +7407,7 @@ expr_t
 AbstractExternalFunctionNode::toStatic(DataTree& static_datatree) const
 {
   vector<expr_t> static_arguments;
+  static_arguments.reserve(arguments.size());
   for (auto argument : arguments)
     static_arguments.push_back(argument->toStatic(static_datatree));
   return buildSimilarExternalFunctionNode(static_arguments, static_datatree);
@@ -7414,6 +7417,7 @@ expr_t
 AbstractExternalFunctionNode::clone(DataTree& alt_datatree) const
 {
   vector<expr_t> dynamic_arguments;
+  dynamic_arguments.reserve(arguments.size());
   for (auto argument : arguments)
     dynamic_arguments.push_back(argument->clone(alt_datatree));
   return buildSimilarExternalFunctionNode(dynamic_arguments, alt_datatree);
@@ -7423,6 +7427,7 @@ expr_t
 ExternalFunctionNode::composeDerivatives(const vector<expr_t>& dargs)
 {
   vector<expr_t> dNodes;
+  dNodes.reserve(dargs.size());
   for (int i = 0; i < static_cast<int>(dargs.size()); i++)
     dNodes.push_back(datatree.AddTimes(
         dargs.at(i), datatree.AddFirstDerivExternalFunction(symb_id, arguments, i + 1)));
@@ -7715,6 +7720,7 @@ expr_t
 FirstDerivExternalFunctionNode::composeDerivatives(const vector<expr_t>& dargs)
 {
   vector<expr_t> dNodes;
+  dNodes.reserve(dargs.size());
   for (int i = 0; i < static_cast<int>(dargs.size()); i++)
     dNodes.push_back(datatree.AddTimes(dargs.at(i), datatree.AddSecondDerivExternalFunction(
                                                         symb_id, arguments, inputIndex, i + 1)));
diff --git a/src/ModelEquationBlock.cc b/src/ModelEquationBlock.cc
index 5524712337a66108ae66b1766c731bdf69f64071..212e01947f30c70c6aca06811c0a9ef410004013 100644
--- a/src/ModelEquationBlock.cc
+++ b/src/ModelEquationBlock.cc
@@ -529,6 +529,7 @@ Epilogue::writeOutput(ostream& output) const
     expr->collectVariables(SymbolType::endogenous, endogs);
 
   vector<string> symbol_list;
+  symbol_list.reserve(endogs.size());
   for (auto symb_id : endogs)
     symbol_list.push_back(symbol_table.getName(symb_id));
   SymbolList {move(symbol_list)}.writeOutput("M_.epilogue_var_list_", output);
diff --git a/src/StaticModel.cc b/src/StaticModel.cc
index 5ce83bbda90d4b5a4d6553295b67d6968526ee50..0ac4afa805d09f88a79839d8ac0f7cd5b271ebef 100644
--- a/src/StaticModel.cc
+++ b/src/StaticModel.cc
@@ -854,6 +854,7 @@ StaticModel::computeRamseyMultipliersDerivatives(int ramsey_orig_endo_nbr, bool
   // Compute derivation IDs of Lagrange multipliers
   set<int> mult_symb_ids {symbol_table.getLagrangeMultipliers()};
   vector<int> mult_deriv_ids;
+  mult_deriv_ids.reserve(mult_symb_ids.size());
   for (int symb_id : mult_symb_ids)
     mult_deriv_ids.push_back(getDerivID(symb_id, 0));
 
diff --git a/src/macro/Expressions.cc b/src/macro/Expressions.cc
index cfc6704bb3caaffd4dc3349075d44297d2accb60..b1e671a93343928c9c4078b5452415340acce138 100644
--- a/src/macro/Expressions.cc
+++ b/src/macro/Expressions.cc
@@ -640,6 +640,7 @@ BaseTypePtr
 Array::eval(Environment& env) const
 {
   vector<ExpressionPtr> retval;
+  retval.reserve(arr.size());
   for (const auto& it : arr)
     retval.emplace_back(it->eval(env));
   return make_shared<Array>(retval);
@@ -649,6 +650,7 @@ BaseTypePtr
 Tuple::eval(Environment& env) const
 {
   vector<ExpressionPtr> retval;
+  retval.reserve(tup.size());
   for (const auto& it : tup)
     retval.emplace_back(it->eval(env));
   return make_shared<Tuple>(retval);