34 #ifndef __INCLUDE_MIST_SET_H__
35 #define __INCLUDE_MIST_SET_H__
38 #ifndef __INCLUDE_MIST_CONF_H__
64 template<
class SetType >
78 #if __MIST_MSVC__ != 6
106 template<
class Iterator >
111 template<
class Iterator >
116 template<
class Iterator >
126 #if __MIST_MSVC__ != 6
127 base::insert( s.begin( ), s.end( ) );
130 const_iterator site = s.begin( );
131 const_iterator eite = s.end( );
132 for( ; site != eite ; ++site )
134 base::insert( *site );
157 const_iterator site1 = a.begin( );
158 const_iterator eite1 = a.end( );
159 const_iterator site2 = s.begin( );
160 const_iterator eite2 = s.end( );
166 while( site1 != eite1 && site2 != eite2 )
168 if( compare( *site1, *site2 ) )
170 base::insert( *site1 );
173 else if( compare( *site2, *site1 ) )
186 #if __MIST_MSVC__ != 6
187 base::insert( site1, eite1 );
190 for( ; site1 != eite1 ; ++site1 )
192 base::insert( *site1 );
213 const_iterator site1 = a.begin( );
214 const_iterator eite1 = a.end( );
215 const_iterator site2 = s.begin( );
216 const_iterator eite2 = s.end( );
222 while( site1 != eite1 && site2 != eite2 )
224 if( compare( *site1, *site2 ) )
228 else if ( compare( *site2, *site1 ) )
234 base::insert( *site1 );
248 const_iterator site = a.begin( );
249 const_iterator eite = a.end( );
255 while( site != eite )
257 if( compare( *site, s ) )
261 else if ( compare( s, *site ) )
267 base::insert( *site );
289 if( base::size( ) != s.size( ) )
295 const_iterator ite1 = base::begin( );
296 const_iterator eite1 = base::end( );
297 const_iterator ite2 = s.begin( );
298 for( ; ite1 != eite1 ; ++ite1, ++ite2 )
300 if( compare( *ite1, *ite2 ) || compare( *ite2, *ite1 ) )
312 if( base::size( ) != 1 )
318 const_iterator ite = base::begin( );
319 const_iterator eite = base::end( );
320 for( ; ite != eite ; ++ite )
322 if( compare( *ite, s ) || compare( s, *ite ) )
332 bool operator !=(
const set_base &s )
const {
return( !( *
this == s ) ); }
335 bool operator !=(
const key_type &s )
const {
return( !( *
this == s ) ); }
340 if( base::size( ) >= s.size( ) )
345 return( std::includes( s.begin( ), s.end( ), base::begin( ), base::end( ),
key_compare( ) ) );
351 if( base::size( ) > s.size( ) )
356 return( std::includes( s.begin( ), s.end( ), base::begin( ), base::end( ),
key_compare( ) ) );
360 bool operator > (
const set_base &s )
const {
return( s < *
this ); }
363 bool operator >=(
const set_base &s )
const {
return( s <= *
this ); }
455 template<
class SetType >
456 inline std::ostream &operator <<( std::ostream &out, const set_base< SetType > &s )
459 if( ite != s.end( ) )
464 for( ; ite != s.end( ) ; ++ite )
481 template<
class Key,
class Comp = std::less< Key >,
class Allocator = std::allocator< Key > >
495 #if __MIST_MSVC__ != 6
522 template<
class Iterator >
523 set( Iterator first, Iterator last ) :
base( first, last ){ }
526 template<
class Iterator >
527 set( Iterator first, Iterator last,
const key_compare &pred ) :
base( first, last, pred ){ }
530 template<
class Iterator >
544 template<
class Key,
class Comp = std::less< Key >,
class Allocator = std::allocator< Key > >
558 #if __MIST_MSVC__ != 6
585 template<
class Iterator >
589 template<
class Iterator >
593 template<
class Iterator >
608 #endif // __INCLUDE_MIST_SET_H__