4 #ifndef BITCOIN_MRUSET_H
5 #define BITCOIN_MRUSET_H
16 typedef typename std::set<T>::iterator
iterator;
26 mruset(size_type nMaxSizeIn = 0) { nMaxSize = nMaxSizeIn; }
27 iterator
begin()
const {
return set.begin(); }
28 iterator
end()
const {
return set.end(); }
29 size_type
size()
const {
return set.size(); }
30 bool empty()
const {
return set.empty(); }
31 iterator
find(
const key_type& k)
const {
return set.find(k); }
32 size_type
count(
const key_type& k)
const {
return set.count(k); }
35 bool inline friend operator<(const mruset<T>& a,
const mruset<T>& b) {
return a.
set < b.set; }
36 std::pair<iterator, bool>
insert(
const key_type& x)
38 std::pair<iterator, bool> ret = set.insert(x);
41 if (nMaxSize && queue.size() ==
nMaxSize)
43 set.erase(queue.front());
54 while (queue.size() > s)
56 set.erase(queue.front());
std::set< T >::iterator iterator
std::pair< iterator, bool > insert(const key_type &x)
iterator find(const key_type &k) const
size_type max_size() const
STL-like set container that only keeps the most recent N elements.
size_type count(const key_type &k) const
bool friend operator==(const mruset< T > &a, const std::set< T > &b)
size_type max_size(size_type s)
std::set< T >::const_iterator const_iterator
bool friend operator==(const mruset< T > &a, const mruset< T > &b)
mruset(size_type nMaxSizeIn=0)
std::set< T >::size_type size_type