ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/dclient/include/adt/unordered_erase.h
Revision: 1.1
Committed: Mon Oct 18 14:11:43 2010 UTC (13 years, 9 months ago) by sf-pippijn
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
check and log but do not die when ncurses stuff fails

File Contents

# User Rev Content
1 sf-pippijn 1.1 #pragma once
2    
3     template<typename T>
4     typename std::vector<T>::iterator
5     unordered_erase (std::vector<T> &vec, typename std::vector<T>::iterator iter)
6     {
7     size_t pos = iter - vec.begin ();
8     vec.at (pos) = vec.back ();
9     vec.pop_back ();
10     return vec.begin () + pos;
11     }
12    
13     template<typename T>
14     typename std::vector<T>::iterator
15     unordered_erase (std::vector<T> &vec, typename std::vector<T>::size_type pos)
16     {
17     return unordered_erase (vec, vec.begin () + pos);
18     }
19    
20     template<typename T>
21     typename std::vector<T>::iterator
22     unordered_erase (std::vector<T> &vec, typename std::vector<T>::const_reference element)
23     {
24     return unordered_erase (vec, &element - &vec.front ());
25     }