示例#1
0
void test_erase()
{
    PtrSet s;
    typedef typename PtrSet::key_type T;

    T t;
    T* t2 = t.clone();
    s.insert ( new T );
    s.insert ( t2 );
    s.insert ( new T );
    BOOST_CHECK_EQUAL( s.size(), 3u ); 
    BOOST_CHECK_EQUAL( t, *t2 );
    BOOST_CHECK( ! (t < *t2) );
    BOOST_CHECK( ! (*t2 < t) );
    BOOST_CHECK_EQUAL( t, *t2 );
    
    unsigned n = s.erase( t );
    BOOST_CHECK( n > 0 );   
}
示例#2
0
void test_erase()
{
    PtrSet s;
    typedef typename PtrSet::key_type T;

    T t;
    s.insert ( new T );
    T* t2 = t.clone();
    s.insert ( t2 );
    s.insert ( new T );
    BOOST_CHECK_EQUAL( s.size(), 3u ); 
    BOOST_CHECK_EQUAL( hash_value(t), hash_value(*t2) );
    BOOST_CHECK_EQUAL( t, *t2 );

    typename PtrSet::iterator i = s.find( t );

    BOOST_CHECK( i != s.end() );
    unsigned n = s.erase( t );
    BOOST_CHECK( n > 0 );   
}