diff options
author | Clifford Wolf <clifford@clifford.at> | 2015-01-24 00:13:27 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2015-01-24 00:13:27 +0100 |
commit | 43951099cf46b5a0a25bdebb001685a89dfe6c82 (patch) | |
tree | b95a7ef79401216e1e65b30691b4ecaa2e7491af /kernel/hashlib.h | |
parent | 1cb4c925d03de289f37a40b6eceb57ced8dce295 (diff) | |
download | yosys-43951099cf46b5a0a25bdebb001685a89dfe6c82.tar.gz yosys-43951099cf46b5a0a25bdebb001685a89dfe6c82.tar.bz2 yosys-43951099cf46b5a0a25bdebb001685a89dfe6c82.zip |
Added dict/pool.sort()
Diffstat (limited to 'kernel/hashlib.h')
-rw-r--r-- | kernel/hashlib.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/hashlib.h b/kernel/hashlib.h index 52b38a064..8c977de2f 100644 --- a/kernel/hashlib.h +++ b/kernel/hashlib.h @@ -457,6 +457,13 @@ public: return entries[i].udata.second; } + template<typename Compare = std::less<K>> + void sort(Compare comp = Compare()) + { + std::sort(entries.begin(), entries.end(), [comp](const entry_t &a, const entry_t &b){ return comp(b.udata.first, a.udata.first); }); + do_rehash(); + } + void swap(dict &other) { hashtable.swap(other.hashtable); @@ -760,6 +767,13 @@ public: return i >= 0; } + template<typename Compare = std::less<K>> + void sort(Compare comp = Compare()) + { + std::sort(entries.begin(), entries.end(), [comp](const entry_t &a, const entry_t &b){ return comp(b.udata, a.udata); }); + do_rehash(); + } + void swap(pool &other) { hashtable.swap(other.hashtable); |