ProteoWizard
Functions
ralab::base::utils Namespace Reference

Functions

template<class InputIterator , class InputIterator2 , class OutputIterator , class Predicate >
OutputIterator copy_if (InputIterator first, InputIterator last, InputIterator2 source, OutputIterator result, Predicate pred)
 
template<class InputIterator , class InputIterator2 , class OutputIterator , class Predicate >
OutputIterator copy_if_not (InputIterator first, InputIterator last, InputIterator2 source, OutputIterator result, Predicate pred)
 
template<typename InputIterator , typename OutputIterator , typename Predicate >
OutputIterator copy_if (InputIterator begin, InputIterator end, OutputIterator destBegin, Predicate p)
 copy_if More...
 
template<typename InputIterator , typename OutputIterator , typename Predicate >
OutputIterator copy_if_not (InputIterator begin, InputIterator end, OutputIterator destBegin, Predicate p)
 copy_if_not for containers More...
 

Function Documentation

§ copy_if() [1/2]

template<class InputIterator , class InputIterator2 , class OutputIterator , class Predicate >
OutputIterator ralab::base::utils::copy_if ( InputIterator  first,
InputIterator  last,
InputIterator2  source,
OutputIterator  result,
Predicate  pred 
)

Definition at line 35 of file copyif.hpp.

Referenced by ralab::base::ms::PeakPicker< TReal, TIntegrator >::filter().

41  {
42  while(first!=last)
43  {
44  if(pred(*first))
45  {
46  *result = *source;
47  ++result;
48  }
49  ++first;
50  ++source;
51  }
52  return result;
53  }

§ copy_if_not() [1/2]

template<class InputIterator , class InputIterator2 , class OutputIterator , class Predicate >
OutputIterator ralab::base::utils::copy_if_not ( InputIterator  first,
InputIterator  last,
InputIterator2  source,
OutputIterator  result,
Predicate  pred 
)

Definition at line 56 of file copyif.hpp.

62  {
63  while(first!=last)
64  {
65  if(!pred(*first))
66  {
67  *result = *source;
68  ++result;
69  }
70  ++first;
71  ++source;
72  }
73  return result;
74  }

§ copy_if() [2/2]

template<typename InputIterator , typename OutputIterator , typename Predicate >
OutputIterator ralab::base::utils::copy_if ( InputIterator  begin,
InputIterator  end,
OutputIterator  destBegin,
Predicate  p 
)

copy_if

Implementation of copy_if as suggested in Efficient STL (Scott Meyers) item 37.

Definition at line 84 of file copyif.hpp.

89  {
90 
91  while(begin != end)
92  {
93  typename std::iterator_traits<InputIterator>::reference r= *begin;
94  if(p(r))
95  {
96  *destBegin = r;
97  ++destBegin;
98  }
99  ++begin;
100  }
101  return destBegin;
102  }

§ copy_if_not() [2/2]

template<typename InputIterator , typename OutputIterator , typename Predicate >
OutputIterator ralab::base::utils::copy_if_not ( InputIterator  begin,
InputIterator  end,
OutputIterator  destBegin,
Predicate  p 
)

copy_if_not for containers

Implementation of copy_if as suggested in Efficient STL (Scott Meyers) item 37.

Definition at line 112 of file copyif.hpp.

118  {
119 
120  while(begin != end)
121  {
122  typename std::iterator_traits<InputIterator>::reference r= *begin;
123  if(!p(r))
124  {
125  *destBegin = r;
126  ++destBegin;
127  }
128  ++begin;
129  }
130  return destBegin;
131  }