diff options
| author | whythat <[email protected]> | 2016-07-18 12:23:42 +0300 |
|---|---|---|
| committer | whythat <[email protected]> | 2016-08-09 03:11:28 +0300 |
| commit | 947913fc54325bea88dd52ea219ea2c69e334c97 (patch) | |
| tree | 77f60d410fd0d67a1a557d8b44dee8baa64ed395 /src | |
| parent | Merge #8324: [Wallet] keep HD seed during salvagewallet (diff) | |
| download | discoin-947913fc54325bea88dd52ea219ea2c69e334c97.tar.xz discoin-947913fc54325bea88dd52ea219ea2c69e334c97.zip | |
use std::map::erase(const_iterator, const_iterator) to get non-constant iterator
Diffstat (limited to 'src')
| -rw-r--r-- | src/limitedmap.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/limitedmap.h b/src/limitedmap.h index 4d9bb4fa2..7841d7f4a 100644 --- a/src/limitedmap.h +++ b/src/limitedmap.h @@ -66,8 +66,11 @@ public: } void update(const_iterator itIn, const mapped_type& v) { - // TODO: When we switch to C++11, use map.erase(itIn, itIn) to get the non-const iterator. - iterator itTarget = map.find(itIn->first); + // Using map::erase() with empty range instead of map::find() to get a non-const iterator, + // since it is a constant time operation in C++11. For more details, see + // https://stackoverflow.com/questions/765148/how-to-remove-constness-of-const-iterator + iterator itTarget = map.erase(itIn, itIn); + if (itTarget == map.end()) return; std::pair<rmap_iterator, rmap_iterator> itPair = rmap.equal_range(itTarget->second); |