diff --git a/include/engine/datafacade/internal_datafacade.hpp b/include/engine/datafacade/internal_datafacade.hpp index 92bbb5c01..e2465c42a 100644 --- a/include/engine/datafacade/internal_datafacade.hpp +++ b/include/engine/datafacade/internal_datafacade.hpp @@ -735,13 +735,11 @@ class InternalDataFacade final : public BaseDataFacade std::vector result_nodes; - result_nodes.reserve(end - begin); + result_nodes.resize(end - begin); - std::for_each(m_geometry_node_list.begin() + begin, - m_geometry_node_list.begin() + end, - [&](const NodeID &node_id) { - result_nodes.emplace_back(node_id); - }); + std::copy(m_geometry_node_list.begin() + begin, + m_geometry_node_list.begin() + end, + result_nodes.begin()); return result_nodes; } @@ -760,13 +758,11 @@ class InternalDataFacade final : public BaseDataFacade std::vector result_nodes; - result_nodes.reserve(end - begin); + result_nodes.resize(end - begin); - std::for_each(m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - end), - m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - begin), - [&](const NodeID &node_id) { - result_nodes.emplace_back(node_id); - }); + std::copy(m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - end), + m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - begin), + result_nodes.begin()); return result_nodes; } @@ -785,13 +781,11 @@ class InternalDataFacade final : public BaseDataFacade const unsigned end = m_geometry_indices.at(id + 1); std::vector result_weights; - result_weights.reserve(end - begin); + result_weights.resize(end - begin); - std::for_each(m_geometry_fwd_weight_list.begin() + begin, - m_geometry_fwd_weight_list.begin() + end, - [&](const EdgeWeight &forward_weight) { - result_weights.emplace_back(forward_weight); - }); + std::copy(m_geometry_fwd_weight_list.begin() + begin, + m_geometry_fwd_weight_list.begin() + end, + result_weights.begin()); return result_weights; } @@ -812,13 +806,11 @@ class InternalDataFacade final : public BaseDataFacade const signed end = m_geometry_indices.at(id + 1) - 1; std::vector result_weights; - result_weights.reserve(end - begin); + result_weights.resize(end - begin); - std::for_each(m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - end), - m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - begin), - [&](const EdgeWeight &reverse_weight) { - result_weights.emplace_back(reverse_weight); - }); + std::copy(m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - end), + m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - begin), + result_weights.begin()); return result_weights; } @@ -841,7 +833,7 @@ class InternalDataFacade final : public BaseDataFacade const unsigned end = m_geometry_indices.at(id + 1); std::vector result_datasources; - result_datasources.reserve(end - begin); + result_datasources.resize(end - begin); // If there was no datasource info, return an array of 0's. if (m_datasource_list.empty()) @@ -853,10 +845,10 @@ class InternalDataFacade final : public BaseDataFacade } else { - std::for_each( + std::copy( m_datasource_list.begin() + begin, m_datasource_list.begin() + end, - [&](const uint8_t &datasource_id) { result_datasources.push_back(datasource_id); }); + result_datasources.begin()); } return result_datasources; @@ -880,7 +872,7 @@ class InternalDataFacade final : public BaseDataFacade const unsigned end = m_geometry_indices.at(id + 1) - 1; std::vector result_datasources; - result_datasources.reserve(end - begin); + result_datasources.resize(end - begin); // If there was no datasource info, return an array of 0's. if (m_datasource_list.empty()) @@ -892,10 +884,10 @@ class InternalDataFacade final : public BaseDataFacade } else { - std::for_each( + std::copy( m_datasource_list.rbegin() + (m_datasource_list.size() - end), m_datasource_list.rbegin() + (m_datasource_list.size() - begin), - [&](const uint8_t &datasource_id) { result_datasources.push_back(datasource_id); }); + result_datasources.begin()); } return result_datasources; diff --git a/include/engine/datafacade/shared_datafacade.hpp b/include/engine/datafacade/shared_datafacade.hpp index 4c43a59da..4e469e0f6 100644 --- a/include/engine/datafacade/shared_datafacade.hpp +++ b/include/engine/datafacade/shared_datafacade.hpp @@ -559,13 +559,11 @@ class SharedDataFacade final : public BaseDataFacade std::vector result_nodes; - result_nodes.reserve(end - begin); + result_nodes.resize(end - begin); - std::for_each(m_geometry_node_list.begin() + begin, - m_geometry_node_list.begin() + end, - [&](const NodeID &node_id) { - result_nodes.emplace_back(node_id); - }); + std::copy(m_geometry_node_list.begin() + begin, + m_geometry_node_list.begin() + end, + result_nodes.begin()); return result_nodes; } @@ -584,13 +582,11 @@ class SharedDataFacade final : public BaseDataFacade std::vector result_nodes; - result_nodes.reserve(end - begin); + result_nodes.resize(end - begin); - std::for_each(m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - end), - m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - begin), - [&](const NodeID &node_id) { - result_nodes.emplace_back(node_id); - }); + std::copy(m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - end), + m_geometry_node_list.rbegin() + (m_geometry_node_list.size() - begin), + result_nodes.begin()); return result_nodes; } @@ -609,13 +605,11 @@ class SharedDataFacade final : public BaseDataFacade const unsigned end = m_geometry_indices.at(id + 1); std::vector result_weights; - result_weights.reserve(end - begin); + result_weights.resize(end - begin); - std::for_each(m_geometry_fwd_weight_list.begin() + begin, - m_geometry_fwd_weight_list.begin() + end, - [&](const EdgeWeight &forward_weight) { - result_weights.emplace_back(forward_weight); - }); + std::copy(m_geometry_fwd_weight_list.begin() + begin, + m_geometry_fwd_weight_list.begin() + end, + result_weights.begin()); return result_weights; } @@ -636,13 +630,15 @@ class SharedDataFacade final : public BaseDataFacade const signed end = m_geometry_indices.at(id + 1) - 1; std::vector result_weights; - result_weights.reserve(end - begin); + result_weights.resize(end - begin); - std::for_each(m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - end), - m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - begin), - [&](const EdgeWeight &reverse_weight) { - result_weights.emplace_back(reverse_weight); - }); + std::copy(m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - end), + m_geometry_rev_weight_list.rbegin() + (m_geometry_rev_weight_list.size() - begin), + result_weights.begin()); + + std::cout << "Should be: " << end - begin << std::endl; + std::cout << "Result weights length: " << result_weights.size() << std::endl; + std::cout << "Beginning weights length: " << m_geometry_rev_weight_list.size() << std::endl; return result_weights; } @@ -862,7 +858,7 @@ class SharedDataFacade final : public BaseDataFacade const unsigned end = m_geometry_indices.at(id + 1); std::vector result_datasources; - result_datasources.reserve(end - begin); + result_datasources.resize(end - begin); // If there was no datasource info, return an array of 0's. if (m_datasource_list.empty()) @@ -874,10 +870,10 @@ class SharedDataFacade final : public BaseDataFacade } else { - std::for_each( + std::copy( m_datasource_list.begin() + begin, m_datasource_list.begin() + end, - [&](const uint8_t &datasource_id) { result_datasources.push_back(datasource_id); }); + result_datasources.begin()); } return result_datasources; @@ -901,7 +897,7 @@ class SharedDataFacade final : public BaseDataFacade const unsigned end = m_geometry_indices.at(id + 1) - 1; std::vector result_datasources; - result_datasources.reserve(end - begin); + result_datasources.resize(end - begin); // If there was no datasource info, return an array of 0's. if (m_datasource_list.empty()) @@ -913,10 +909,10 @@ class SharedDataFacade final : public BaseDataFacade } else { - std::for_each( + std::copy( m_datasource_list.rbegin() + (m_datasource_list.size() - end), m_datasource_list.rbegin() + (m_datasource_list.size() - begin), - [&](const uint8_t &datasource_id) { result_datasources.push_back(datasource_id); }); + result_datasources.begin()); } return result_datasources;