6 #ifndef MISC_ALGORITHM_HXX
7 # define MISC_ALGORITHM_HXX
17 template <
typename Container>
21 for (
typename Container::value_type& x : c)
28 template <
typename Container>
29 inline typename Container::const_iterator
30 find(
const Container& c,
const typename Container::value_type& v)
36 template <
typename Container>
37 inline typename Container::iterator
38 find(Container& c,
const typename Container::value_type& v)
45 template <
typename Container,
typename Functor>
49 typename Container::const_iterator end = c.end();
50 for (
typename Container::const_iterator i = c.begin(); i != end; ++i)
57 template <
typename Container>
59 has(
const Container& c,
const typename Container::value_type& v)
64 return find<Container>(c, v) != c.end();
68 template <
typename Map>
69 typename Map::iterator
71 const typename Map::key_type& key,
72 const typename Map::mapped_type& value)
75 typename Map::iterator i = map.lower_bound(key);
77 if (i != map.end() && !(map.key_comp()(key, i->first)))
86 return map.emplace(key, value).first;
92 #endif // !MISC_ALGORITHM_HXX