From 8e2ffac6514302e893b574333c1b95fbcea09feb Mon Sep 17 00:00:00 2001 From: "Dmitry Yu. Naumov" <github@naumov.de> Date: Tue, 14 Jul 2015 18:40:50 +0000 Subject: [PATCH] [MeL] Replace for_each with range-for-loop. --- MeshLib/MeshSearch/NodeSearch.cpp | 36 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/MeshLib/MeshSearch/NodeSearch.cpp b/MeshLib/MeshSearch/NodeSearch.cpp index 32da085f6d5..334c49c886d 100644 --- a/MeshLib/MeshSearch/NodeSearch.cpp +++ b/MeshLib/MeshSearch/NodeSearch.cpp @@ -28,15 +28,17 @@ std::vector<std::size_t> NodeSearch::searchByElementIDsMatchAllConnectedElements { std::vector<std::size_t> connected_nodes; - std::vector<std::size_t> node_marked_counts(_mesh.getNNodes(), 0); //this approach is not optimum for memory size - std::for_each(elements.begin(), elements.end(), - [&](std::size_t eid) - { - auto* e = _mesh.getElement(eid); - for (unsigned i=0; i<e->getNBaseNodes(); i++) { - node_marked_counts[e->getNodeIndex(i)]++; - } - }); + std::vector<std::size_t> node_marked_counts(_mesh.getNNodes(), 0); + //this approach is not optimal for memory size + + for(std::size_t eid : elements) + { + auto* e = _mesh.getElement(eid); + for (unsigned i=0; i<e->getNBaseNodes(); i++) { + node_marked_counts[e->getNodeIndex(i)]++; + } + } + for (std::size_t i=0; i<node_marked_counts.size(); i++) { if (node_marked_counts[i] == _mesh.getNode(i)->getElements().size()) @@ -49,14 +51,14 @@ std::vector<std::size_t> NodeSearch::searchByElementIDsNotMatchAllConnectedEleme { std::vector<std::size_t> connected_nodes; - std::for_each(elements.begin(), elements.end(), - [&](std::size_t eid) - { - auto* e = _mesh.getElement(eid); - for (unsigned i=0; i<e->getNBaseNodes(); i++) { - connected_nodes.push_back(e->getNodeIndex(i)); - } - }); + for(std::size_t eid : elements) + { + auto* e = _mesh.getElement(eid); + for (unsigned i=0; i<e->getNBaseNodes(); i++) { + connected_nodes.push_back(e->getNodeIndex(i)); + } + } + std::sort(connected_nodes.begin(), connected_nodes.end()); auto it = std::unique(connected_nodes.begin(), connected_nodes.end()); connected_nodes.resize(std::distance(connected_nodes.begin(),it)); -- GitLab