Use a std::vector in place of stxxl:vector for the names list
-For large datasets with very many unique names, stxxl::vector can corrupt data. Technically, we should only be using stxxl:vectors with POD. Other types might lead to strange/unpredictable behavior as we noticed here. -See http://algo2.iti.kit.edu/dementiev/stxxl/trunk/FAQ.html
This commit is contained in:
parent
c38183423f
commit
5b782a783a
@ -64,14 +64,13 @@ class ExtractionContainers
|
|||||||
using STXXLNodeIDVector = stxxl::vector<OSMNodeID>;
|
using STXXLNodeIDVector = stxxl::vector<OSMNodeID>;
|
||||||
using STXXLNodeVector = stxxl::vector<ExternalMemoryNode>;
|
using STXXLNodeVector = stxxl::vector<ExternalMemoryNode>;
|
||||||
using STXXLEdgeVector = stxxl::vector<InternalExtractorEdge>;
|
using STXXLEdgeVector = stxxl::vector<InternalExtractorEdge>;
|
||||||
using STXXLStringVector = stxxl::vector<std::string>;
|
|
||||||
using STXXLRestrictionsVector = stxxl::vector<InputRestrictionContainer>;
|
using STXXLRestrictionsVector = stxxl::vector<InputRestrictionContainer>;
|
||||||
using STXXLWayIDStartEndVector = stxxl::vector<FirstAndLastSegmentOfWay>;
|
using STXXLWayIDStartEndVector = stxxl::vector<FirstAndLastSegmentOfWay>;
|
||||||
|
|
||||||
STXXLNodeIDVector used_node_id_list;
|
STXXLNodeIDVector used_node_id_list;
|
||||||
STXXLNodeVector all_nodes_list;
|
STXXLNodeVector all_nodes_list;
|
||||||
STXXLEdgeVector all_edges_list;
|
STXXLEdgeVector all_edges_list;
|
||||||
STXXLStringVector name_list;
|
std::vector<std::string> name_list;
|
||||||
STXXLRestrictionsVector restrictions_list;
|
STXXLRestrictionsVector restrictions_list;
|
||||||
STXXLWayIDStartEndVector way_start_end_id_list;
|
STXXLWayIDStartEndVector way_start_end_id_list;
|
||||||
std::unordered_map<OSMNodeID, NodeID> external_to_internal_node_id_map;
|
std::unordered_map<OSMNodeID, NodeID> external_to_internal_node_id_map;
|
||||||
|
Loading…
Reference in New Issue
Block a user