mirror of
https://codeberg.org/comaps/comaps
synced 2026-01-05 20:23:48 +00:00
[core] Switch to ankerl::unordered_dense
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
This commit is contained in:
@@ -118,9 +118,9 @@ using NodePoints = std::vector<NodePoint>;
|
||||
using CrossBorderIndexes = std::vector<size_t>;
|
||||
|
||||
std::pair<NodePoints, CrossBorderIndexes> GetCrossBorderPoints(
|
||||
std::vector<uint64_t> const & nodeIds, std::unordered_map<uint64_t, ms::LatLon> const & nodes,
|
||||
std::vector<uint64_t> const & nodeIds, ankerl::unordered_dense::map<uint64_t, ms::LatLon> const & nodes,
|
||||
feature::CountriesFilesAffiliation const & mwmMatcher,
|
||||
std::unordered_map<std::string, NumMwmId> const & regionToIdMap)
|
||||
ankerl::unordered_dense::map<std::string, NumMwmId> const & regionToIdMap)
|
||||
{
|
||||
NodePoints nodePoints;
|
||||
CrossBorderIndexes crossBorderIndexes;
|
||||
@@ -202,9 +202,10 @@ std::optional<std::pair<m2::PointD, double>> GetPointInMwm(NodePoints const & po
|
||||
}
|
||||
|
||||
bool FillCrossBorderGraph(CrossBorderGraph & graph, RegionSegmentId & curSegmentId,
|
||||
std::vector<uint64_t> const & nodeIds, std::unordered_map<uint64_t, ms::LatLon> const & nodes,
|
||||
std::vector<uint64_t> const & nodeIds,
|
||||
ankerl::unordered_dense::map<uint64_t, ms::LatLon> const & nodes,
|
||||
feature::CountriesFilesAffiliation const & mwmMatcher,
|
||||
std::unordered_map<std::string, NumMwmId> const & regionToIdMap)
|
||||
ankerl::unordered_dense::map<std::string, NumMwmId> const & regionToIdMap)
|
||||
{
|
||||
auto const & [nodePoints, crossBorderIndexes] = GetCrossBorderPoints(nodeIds, nodes, mwmMatcher, regionToIdMap);
|
||||
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
#include <memory>
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "3party/ankerl/unordered_dense.h"
|
||||
|
||||
namespace routing
|
||||
{
|
||||
// Road way and regions through which it passes.
|
||||
@@ -33,14 +34,14 @@ struct RoadData
|
||||
OsmElement m_way;
|
||||
};
|
||||
|
||||
using RoadsData = std::unordered_map<uint64_t, RoadData>;
|
||||
using HighwayTypeToRoads = std::unordered_map<std::string, RoadsData>;
|
||||
using RoadsData = ankerl::unordered_dense::map<uint64_t, RoadData>;
|
||||
using HighwayTypeToRoads = ankerl::unordered_dense::map<std::string, RoadsData>;
|
||||
|
||||
// Ways and corresponding nodes of roads extracted from OSM file.
|
||||
struct RoadsFromOsm
|
||||
{
|
||||
HighwayTypeToRoads m_ways;
|
||||
std::unordered_map<uint64_t, ms::LatLon> m_nodes;
|
||||
ankerl::unordered_dense::map<uint64_t, ms::LatLon> m_nodes;
|
||||
};
|
||||
|
||||
// Reads roads from |reader| and finds its mwms with |mwmMatcher|.
|
||||
@@ -50,9 +51,10 @@ RoadsFromOsm GetRoadsFromOsm(generator::SourceReader & reader, feature::Countrie
|
||||
// Fills |graph| with new segments starting from |curSegmentId|. Segments are calculated from the
|
||||
// road consisting of |nodeIds| from OSM.
|
||||
bool FillCrossBorderGraph(CrossBorderGraph & graph, RegionSegmentId & curSegmentId,
|
||||
std::vector<uint64_t> const & nodeIds, std::unordered_map<uint64_t, ms::LatLon> const & nodes,
|
||||
std::vector<uint64_t> const & nodeIds,
|
||||
ankerl::unordered_dense::map<uint64_t, ms::LatLon> const & nodes,
|
||||
feature::CountriesFilesAffiliation const & mwmMatcher,
|
||||
std::unordered_map<std::string, routing::NumMwmId> const & regionToIdMap);
|
||||
ankerl::unordered_dense::map<std::string, routing::NumMwmId> const & regionToIdMap);
|
||||
|
||||
// Dumps |graph| to |path|.
|
||||
bool WriteGraphToFile(CrossBorderGraph const & graph, std::string const & path, bool overwrite);
|
||||
|
||||
@@ -17,9 +17,10 @@
|
||||
#include <memory>
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
#include "3party/ankerl/unordered_dense.h"
|
||||
|
||||
#include <gflags/gflags.h>
|
||||
|
||||
DEFINE_string(path_resources, "", "CoMaps resources directory");
|
||||
@@ -54,7 +55,7 @@ int main(int argc, char ** argv)
|
||||
storage::Storage storage;
|
||||
std::shared_ptr<NumMwmIds> numMwmIds = CreateNumMwmIds(storage);
|
||||
|
||||
std::unordered_map<std::string, NumMwmId> regionsToIds;
|
||||
ankerl::unordered_dense::map<std::string, NumMwmId> regionsToIds;
|
||||
|
||||
numMwmIds->ForEachId([®ionsToIds, &numMwmIds](NumMwmId id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user