11 #include <boost/unordered_map.hpp>
12 #include <boost/unordered_set.hpp>
25 const typename P::first_type&
35 const typename P::second_type&
44 :
public std::unary_function<typename _Fn::argument_type, typename _Fn::result_type>
48 typename _Fn::result_type>
_Base;
53 const typename _Fn::argument_type& _Left)
70 typename _Fn::argument_type
value;
78 typename _Fn::argument_type _Val(_Left);
96 static_cast<void>(index);
98 Assert((index==0&&t.size()==1)
99 || (t.size()>1 && index<=t.size()-1));
104 typename C::iterator it = std::find(_container.begin(), _container.end(), pT);
105 if (it!=_container.end())
108 _container.erase(it);
114 typename C::iterator it = std::find(_container.begin(), _container.end(), pT);
115 if (it!=_container.end())
118 _container.erase(it);
122 template <
class K,
class T> T*
get_from_map(std::map<K, T*>& _map,
const K& key)
124 typename std::map<K, T*>::const_iterator it = _map.find(key);
132 typename std::map<K, T*>::iterator it = _map.find(key);
144 while(_vector.empty()==
false)
152 while(_list.empty()==
false)
160 while(_set.empty()==
false)
168 while(_map.empty()==
false)
170 typename std::map<K, T*>::iterator it = _map.begin();
180 template <
class T> T*
get_nth_item(boost::unordered_set<T*>& _set,
size_t index)
187 typename std::list<T*>::const_iterator it = _set.begin();
188 std::advance(it, index);
199 typename std::list<T*>::const_iterator it = _list.begin();
200 std::advance(it, index);
204 template <
class T>
const T*
get_nth_item(
const std::list<T*>& _list,
size_t index)
211 typename std::list<T*>::const_iterator it = _list.begin();
212 std::advance(it, index);
216 template <
class T> T*
get_nth_item(std::vector<T*>& _vector,
size_t index)
223 return _vector[index];
226 template <
class T> T*
get_nth_item(
const std::vector<T*>& _vector,
size_t index)
233 return _vector[index];
236 template <
class K,
class T> T*
get_nth_item(std::map<K, T*>& _map,
size_t index)
243 typename std::map<K, T*>::const_iterator it = _map.begin();
244 std::advance(it, index);
248 template <
class K,
class T> T*
get_nth_item(
const std::map<K, T*>& _map,
size_t index)
255 typename std::map<K, T*>::const_iterator it = _map.begin();
256 std::advance(it, index);