16 #include <boost/unordered_map.hpp>
17 #include <boost/unordered_set.hpp>
24 const typename P::first_type&
34 const typename P::second_type&
43 :
public std::unary_function<typename _Fn::argument_type, typename _Fn::result_type>
47 typename _Fn::result_type>
_Base;
52 const typename _Fn::argument_type& _Left)
69 typename _Fn::argument_type
value;
77 typename _Fn::argument_type _Val(_Left);
95 static_cast<void>(index);
97 Assert((index==0&&t.size()==1)
98 || (t.size()>1 && index<=t.size()-1));
103 typename C::iterator it = std::find(_container.begin(), _container.end(), pT);
104 if (it!=_container.end())
107 _container.erase(it);
113 typename C::iterator it = std::find(_container.begin(), _container.end(), pT);
114 if (it!=_container.end())
117 _container.erase(it);
121 template <
class K,
class T> T*
get_from_map(std::map<K, T*>& _map,
const K& key)
123 typename std::map<K, T*>::const_iterator it = _map.find(key);
131 typename std::map<K, T*>::iterator it = _map.find(key);
143 while(_vector.empty()==
false)
151 while(_list.empty()==
false)
159 while(_set.empty()==
false)
167 while(_map.empty()==
false)
169 typename std::map<K, T*>::iterator it = _map.begin();
179 template <
class T> T*
get_nth_item(boost::unordered_set<T*>& _set,
size_t index)
186 typename std::list<T*>::const_iterator it = _set.begin();
187 std::advance(it, index);
198 typename std::list<T*>::const_iterator it = _list.begin();
199 std::advance(it, index);
203 template <
class T>
const T*
get_nth_item(
const std::list<T*>& _list,
size_t index)
210 typename std::list<T*>::const_iterator it = _list.begin();
211 std::advance(it, index);
215 template <
class T> T*
get_nth_item(std::vector<T*>& _vector,
size_t index)
222 return _vector[index];
225 template <
class T> T*
get_nth_item(
const std::vector<T*>& _vector,
size_t index)
232 return _vector[index];
235 template <
class K,
class T> T*
get_nth_item(std::map<K, T*>& _map,
size_t index)
242 typename std::map<K, T*>::const_iterator it = _map.begin();
243 std::advance(it, index);
247 template <
class K,
class T> T*
get_nth_item(
const std::map<K, T*>& _map,
size_t index)
254 typename std::map<K, T*>::const_iterator it = _map.begin();
255 std::advance(it, index);