Tiny savings via reserve

release/4.3a0
Frank Dellaert 2025-01-30 23:25:06 -05:00
parent 64aa0520ed
commit d9e8c0526d
2 changed files with 6 additions and 3 deletions

View File

@ -65,6 +65,7 @@ HybridBayesNet HybridBayesNet::prune(
}
HybridBayesNet result;
result.reserve(size());
// Go through all the Gaussian conditionals, restrict them according to
// fixed values, and then prune further.
@ -84,9 +85,9 @@ HybridBayesNet HybridBayesNet::prune(
}
// Type-erase and add to the pruned Bayes Net fragment.
result.push_back(prunedHybridGaussianConditional);
} else if (auto gc = conditional->asGaussian()) {
// Add the non-HybridGaussianConditional conditional
result.push_back(gc);
} else if (conditional->isContinuous()) {
// Add the non-Hybrid GaussianConditional conditional
result.push_back(conditional);
} else
throw std::runtime_error(
"HybrdiBayesNet::prune: Unknown HybridConditional type.");

View File

@ -23,6 +23,7 @@ namespace gtsam {
KeyVector CollectKeys(const KeyVector &continuousKeys,
const DiscreteKeys &discreteKeys) {
KeyVector allKeys;
allKeys.reserve(continuousKeys.size() + discreteKeys.size());
std::copy(continuousKeys.begin(), continuousKeys.end(),
std::back_inserter(allKeys));
std::transform(discreteKeys.begin(), discreteKeys.end(),
@ -34,6 +35,7 @@ KeyVector CollectKeys(const KeyVector &continuousKeys,
/* ************************************************************************ */
KeyVector CollectKeys(const KeyVector &keys1, const KeyVector &keys2) {
KeyVector allKeys;
allKeys.reserve(keys1.size() + keys2.size());
std::copy(keys1.begin(), keys1.end(), std::back_inserter(allKeys));
std::copy(keys2.begin(), keys2.end(), std::back_inserter(allKeys));
return allKeys;