6 #ifndef ANONCOIN_MRUSET_H
7 #define ANONCOIN_MRUSET_H
19 typedef typename std::set<T>::iterator
iterator;
29 mruset(size_type nMaxSizeIn = 0) { nMaxSize = nMaxSizeIn; }
30 iterator
begin()
const {
return set.begin(); }
31 iterator
end()
const {
return set.end(); }
32 size_type
size()
const {
return set.size(); }
33 bool empty()
const {
return set.empty(); }
34 iterator
find(
const key_type& k)
const {
return set.find(k); }
35 size_type
count(
const key_type& k)
const {
return set.count(k); }
36 void clear() { set.clear(); queue.clear(); }
39 bool inline friend operator<(const mruset<T>& a,
const mruset<T>& b) {
return a.
set < b.set; }
40 std::pair<iterator, bool>
insert(
const key_type& x)
42 std::pair<iterator, bool> ret = set.insert(x);
45 if (nMaxSize && queue.size() ==
nMaxSize)
47 set.erase(queue.front());
58 while (queue.size() > s)
60 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