Change node_map type from map<ptr,ptr> to vector<pair<ptr,ptr>> (#386)

* Change node_map type from map<ptr,ptr> to vector<pair<ptr,ptr>>

Map nodes are now iterated over in document order.

* Change insert_map_pair to always append

Always append in insert_map_pair even if the key is already present.
This breaks the behavior of force_insert which now always inserts KVs
even if the key is already present. The first insert for duplicated keys
now takes precedence for lookups.
This commit is contained in:
c0nk
2016-07-18 15:54:10 +02:00
committed by Jesse Beder
parent f74ae543b4
commit f0b15cd6a0
4 changed files with 7 additions and 6 deletions

View File

@@ -114,7 +114,7 @@ class YAML_CPP_API node_data {
mutable std::size_t m_seqSize;
// map
typedef std::map<node*, node*> node_map;
typedef std::vector<std::pair<node*, node*>> node_map;
node_map m_map;
typedef std::pair<node*, node*> kv_pair;

View File

@@ -37,7 +37,7 @@ struct node_iterator_value : public std::pair<V*, V*> {
};
typedef std::vector<node*> node_seq;
typedef std::map<node*, node*> node_map;
typedef std::vector<std::pair<node*, node*>> node_map;
template <typename V>
struct node_iterator_type {