dlib C++ Library - set_compare_1.h

// Copyright (C) 2005 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_SET_COMPARe_1_
#define DLIB_SET_COMPARe_1_
#include "set_compare_abstract.h"
#include "../algs.h"
namespace dlib
{
 template <
 typename set_base 
 >
 class set_compare_1 : public set_base
 {
 public:
 bool operator< (
 const set_compare_1& rhs
 ) const;
 bool operator== (
 const set_compare_1& rhs
 ) const;
 };
 template <
 typename set_base
 >
 inline void swap (
 set_compare_1<set_base>& a, 
 set_compare_1<set_base>& b 
 ) { a.swap(b); } 
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
 // member function definitions
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
 template <
 typename set_base
 >
 bool set_compare_1<set_base>::
 operator< (
 const set_compare_1<set_base>& rhs
 ) const
 {
 bool result = false;
 if (set_base::size() < rhs.size())
 result = true;
 if (set_base::size() == rhs.size())
 {
 rhs.reset();
 set_base::reset();
 while (rhs.move_next())
 {
 set_base::move_next();
 if (set_base::element() < rhs.element())
 {
 result = true;
 break;
 }
 else if (rhs.element() < set_base::element())
 {
 break;
 }
 } 
 }
 set_base::reset();
 rhs.reset();
 return result;
 }
// ----------------------------------------------------------------------------------------
 template <
 typename set_base
 >
 bool set_compare_1<set_base>::
 operator== (
 const set_compare_1<set_base>& rhs
 ) const
 {
 bool result = true;
 if (set_base::size() != rhs.size())
 result = false;
 rhs.reset();
 set_base::reset();
 while (rhs.move_next() && set_base::move_next())
 { 
 if (!(rhs.element() == set_base::element()))
 {
 result = false;
 break;
 }
 }
 set_base::reset();
 rhs.reset();
 return result;
 }
// ----------------------------------------------------------------------------------------
}
#endif // DLIB_SET_COMPARe_1_

AltStyle によって変換されたページ (->オリジナル) /