9 #ifndef ThePEG_algorithm_H
10 #define ThePEG_algorithm_H
19 #include "ThePEG/Config/ThePEG.h"
28 template <
typename Iterator>
47 template <
typename Container>
48 inline IteratorRange<typename Container::iterator>
50 return std::make_pair(c.begin(), c.end());
55 template <
typename Container>
56 inline IteratorRange<typename Container::const_iterator>
58 return std::make_pair(c.begin(), c.end());
63 template <
typename Container>
64 inline IteratorRange<typename Container::reverse_iterator>
66 return std::make_pair(c.rbegin(), c.rend());
71 template <
typename Container>
72 inline IteratorRange<typename Container::const_reverse_iterator>
74 return std::make_pair(c.rbegin(), c.rend());
78 template <
typename Iterator,
typename FNC>
84 template <
typename Iterator,
typename T>
90 template <
typename Iterator,
typename Pred>
96 template <
typename Iterator,
typename T>
102 template <
typename Cont,
typename FNC>
108 template <
typename Cont,
typename FNC>
114 template <
typename Cont,
typename Type>
115 inline typename Cont::iterator
find(Cont & c,
const Type & t) {
120 template <
typename Cont,
typename Type>
121 inline typename Cont::const_iterator
find(
const Cont & c,
const Type & t) {
126 template <
typename Cont,
typename Pred>
127 inline typename Cont::iterator
find_if(Cont & c,
const Pred & p) {
132 template <
typename Cont,
typename Pred>
133 inline typename Cont::const_iterator
find_if(
const Cont & c,
const Pred & p) {
138 template <
typename Cont,
typename T>
139 inline void replace(Cont & c,
const T & oval,
const T & nval) {
146 #ifndef ThePEG_TEMPLATES_IN_CC_FILE