Add new erase(iterator) overloads

Not for unordered_set/unordered_multiset as they use the same type for
iterator and const_iterator.
This commit is contained in:
Daniel James
2017-04-20 22:59:00 +01:00
parent 461ac96a2c
commit bf7a65010c
3 changed files with 80 additions and 0 deletions

View File

@@ -668,6 +668,7 @@ template <class K, class T, class H, class P, class A> class unordered_map
.first;
}
iterator erase(iterator);
iterator erase(const_iterator);
size_type erase(const key_type&);
iterator erase(const_iterator, const_iterator);
@@ -1169,6 +1170,7 @@ template <class K, class T, class H, class P, class A> class unordered_multimap
public:
#endif
iterator erase(iterator);
iterator erase(const_iterator);
size_type erase(const key_type&);
iterator erase(const_iterator, const_iterator);
@@ -1455,6 +1457,13 @@ void unordered_map<K, T, H, P, A>::insert(
}
#endif
template <class K, class T, class H, class P, class A>
typename unordered_map<K, T, H, P, A>::iterator
unordered_map<K, T, H, P, A>::erase(iterator position)
{
return table_.erase(position);
}
template <class K, class T, class H, class P, class A>
typename unordered_map<K, T, H, P, A>::iterator
unordered_map<K, T, H, P, A>::erase(const_iterator position)
@@ -1866,6 +1875,13 @@ void unordered_multimap<K, T, H, P, A>::insert(
}
#endif
template <class K, class T, class H, class P, class A>
typename unordered_multimap<K, T, H, P, A>::iterator
unordered_multimap<K, T, H, P, A>::erase(iterator position)
{
return table_.erase(position);
}
template <class K, class T, class H, class P, class A>
typename unordered_multimap<K, T, H, P, A>::iterator
unordered_multimap<K, T, H, P, A>::erase(const_iterator position)