Keep the first value from initializer_list.
This commit is contained in:
parent
77ccc13181
commit
9e8b2489bd
@ -14,13 +14,13 @@
|
||||
|
||||
namespace td {
|
||||
template <class KeyT, class ValueT, class HashT = std::hash<KeyT>, class EqT = std::equal_to<KeyT>>
|
||||
using FlatHashMap = FlatHashMapImpl<KeyT, ValueT, HashT, EqT>;
|
||||
//using FlatHashMap = FlatHashMapChunks<KeyT, ValueT, HashT, EqT>;
|
||||
//using FlatHashMap = FlatHashMapImpl<KeyT, ValueT, HashT, EqT>;
|
||||
using FlatHashMap = FlatHashMapChunks<KeyT, ValueT, HashT, EqT>;
|
||||
//using FlatHashMap = std::unordered_map<KeyT, ValueT, HashT, EqT>;
|
||||
|
||||
template <class KeyT, class HashT = std::hash<KeyT>, class EqT = std::equal_to<KeyT>>
|
||||
using FlatHashSet = FlatHashSetImpl<KeyT, HashT, EqT>;
|
||||
//using FlatHashSet = FlatHashSetChunks<KeyT, HashT, EqT>;
|
||||
//using FlatHashSet = FlatHashSetImpl<KeyT, HashT, EqT>;
|
||||
using FlatHashSet = FlatHashSetChunks<KeyT, HashT, EqT>;
|
||||
//using FlatHashSet = std::unordered_set<KeyT, HashT, EqT>;
|
||||
|
||||
} // namespace td
|
||||
|
@ -6,7 +6,6 @@
|
||||
//
|
||||
#pragma once
|
||||
|
||||
#include "td/utils/algorithm.h"
|
||||
#include "td/utils/bits.h"
|
||||
#include "td/utils/common.h"
|
||||
#include "td/utils/FlatHashMapLinear.h"
|
||||
@ -224,9 +223,9 @@ class FlatHashTableChunks {
|
||||
|
||||
FlatHashTableChunks(std::initializer_list<Node> nodes) {
|
||||
reserve(nodes.size());
|
||||
for (auto &node : reversed(nodes)) {
|
||||
for (auto &node : nodes) {
|
||||
CHECK(!node.empty());
|
||||
if (count(node.first) > 0) {
|
||||
if (count(node.key()) > 0) {
|
||||
continue;
|
||||
}
|
||||
emplace_node(Node{node.first, node.second});
|
||||
|
@ -276,8 +276,6 @@ class FlatHashTable {
|
||||
break;
|
||||
}
|
||||
if (EqT()(node.key(), new_node.key())) {
|
||||
node.clear();
|
||||
node.copy_from(new_node);
|
||||
break;
|
||||
}
|
||||
next_bucket(bucket);
|
||||
|
@ -181,14 +181,12 @@ struct reversion_wrapper {
|
||||
|
||||
template <typename T>
|
||||
auto begin(reversion_wrapper<T> w) {
|
||||
using std::rbegin;
|
||||
return rbegin(w.iterable);
|
||||
return w.iterable.rbegin();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
auto end(reversion_wrapper<T> w) {
|
||||
using std::rend;
|
||||
return rend(w.iterable);
|
||||
return w.iterable.rend();
|
||||
}
|
||||
} // namespace detail
|
||||
|
||||
|
@ -119,7 +119,7 @@ TEST(FlatHashMap, basic) {
|
||||
|
||||
{
|
||||
td::FlatHashMap<int, td::string> map = {{1, "hello"}, {1, "world"}};
|
||||
ASSERT_EQ("world", map[1]);
|
||||
ASSERT_EQ("hello", map[1]);
|
||||
ASSERT_EQ(1u, map.size());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user