Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00031
00035 template<typename E, typename Comp, typename Container>
00036 claw::max_vector<E, Comp, Container>::max_vector()
00037 {
00038
00039 }
00040
00041
00046 template <typename E, typename Comp, typename Container>
00047 claw::max_vector<E, Comp, Container>::max_vector(const value_type& e)
00048 {
00049 add(e);
00050 }
00051
00052
00057 template <typename E, typename Comp, typename Container>
00058 void claw::max_vector<E, Comp, Container>::add(const value_type& e)
00059 {
00060 if (m_values.empty())
00061 *std::inserter(m_values, m_values.end()) = e;
00062 else
00063 {
00064 comparator_type comp;
00065 if ( comp(m_values.front(), e) )
00066 {
00067 m_values.clear();
00068 *std::inserter(m_values, m_values.end()) = e;
00069 }
00070 else if ( !comp(e, m_values.front()) )
00071 *std::inserter(m_values, m_values.end()) = e;
00072 }
00073 }
00074
00075
00079 template <typename E, typename Comp, typename Container>
00080 const typename claw::max_vector<E, Comp, Container>::container_type&
00081 claw::max_vector<E, Comp, Container>::get_v() const
00082 {
00083 return m_values;
00084 }