summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-07-31 17:09:36 +0200
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-07-31 17:09:36 +0200
commit70196802c49104e27617e5bff1e3c6afd09271ea (patch)
treee90fdc532a9e2348c893e83e5b967450c6503886 /src
parentd27d7839a3c32513ffc60eb709765c6a89e0e208 (diff)
code review: using a vector is overkill. emplace_back is more efficient
Diffstat (limited to 'src')
-rw-r--r--src/python/include/Simplex_tree_interface.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/python/include/Simplex_tree_interface.h b/src/python/include/Simplex_tree_interface.h
index 7500098d..45b178a2 100644
--- a/src/python/include/Simplex_tree_interface.h
+++ b/src/python/include/Simplex_tree_interface.h
@@ -21,6 +21,7 @@
#include <vector>
#include <utility> // std::pair
#include <tuple>
+#include <iterator> // for std::distance
namespace Gudhi {
@@ -163,10 +164,11 @@ class Simplex_tree_interface : public Simplex_tree<SimplexTreeOptions> {
using Filtered_edge = std::tuple<Vertex_handle, Vertex_handle, Filtration_value>;
std::vector<Filtered_edge> edges;
for (Simplex_handle sh : Base::skeleton_simplex_range(1)) {
- if (Base::dimension(sh) == 1) {
- typename Base::Simplex_vertex_range rg = Base::simplex_vertex_range(sh);
- std::vector<Vertex_handle> rips_edge(rg.begin(), rg.end());
- edges.push_back(std::make_tuple(rips_edge[0], rips_edge[1], Base::filtration(sh)));
+ typename Base::Simplex_vertex_range rg = Base::simplex_vertex_range(sh);
+ auto rg_begin = rg.begin();
+ // We take only edges into account
+ if (std::distance(rg_begin, rg.end()) == 2) {
+ edges.emplace_back(*rg_begin, *std::next(rg_begin), Base::filtration(sh));
}
}