13 #ifndef __defined_libdai_smallset_h
14 #define __defined_libdai_smallset_h
52 }
else if( t2 < t1 ) {
66 template <
typename TIterator>
71 typename std::vector<T>::iterator new_end = std::unique(
_elements.begin(),
_elements.end() );
81 if( (it ==
_elements.end()) || (*it != t) )
114 return (*
this = (*
this / x));
119 typename std::vector<T>::iterator pos = lower_bound(
_elements.begin(),
_elements.end(), t );
128 return( *
this = (*
this | x) );
133 typename std::vector<T>::iterator pos = lower_bound(
_elements.begin(),
_elements.end(), t );
134 if( pos ==
_elements.end() || *pos != t )
141 return (*
this = (*
this & x));
159 return( (*
this & x).
size() > 0 );
168 typename std::vector<T>::size_type
size()
const {
return _elements.size(); }
183 typedef typename std::vector<T>::iterator
iterator;
245 for(
typename std::vector<T>::const_iterator it = x.
begin(); it != x.
end(); it++ )
246 os << (it != x.
begin() ?
", " :
"") << *it;