⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptr_unordered_set.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
字号:
//// Boost.Pointer Container////  Copyright Thorsten Ottosen 2003-2005. Use, modification and//  distribution is subject to the Boost Software License, Version//  1.0. (See accompanying file LICENSE_1_0.txt or copy at//  http://www.boost.org/LICENSE_1_0.txt)//// For more information, see http://www.boost.org/libs/ptr_container/// #include <boost/test/unit_test.hpp>#include "associative_test_data.hpp"#include <boost/ptr_container/ptr_unordered_set.hpp>template< class SetDerived, class SetBase, class T >void test_transfer(){    SetBase to;    SetDerived from;    from.insert( new T );    from.insert( new T );    transfer_test( from, to );}template< class BaseContainer, class DerivedContainer, class Derived >void test_copy(){    DerivedContainer derived;    derived.insert( new Derived );    derived.insert( new Derived );    BaseContainer base( derived );    BOOST_CHECK_EQUAL( derived.size(), base.size() );    base.clear();    base = derived;    BOOST_CHECK_EQUAL( derived.size(), base.size() );    base = base;}template< class Cont, class T >void test_unordered_interface(){    Cont c;    T* t = new T;    c.insert( t );    typename Cont::local_iterator i = c.begin( 0 );    typename Cont::const_local_iterator ci = i;    ci = c.cbegin( 0 );    i = c.end( 0 );    ci = c.cend( 0 );    typename Cont::size_type s = c.bucket_count();    s = c.max_bucket_count();    s = c.bucket_size( 0 );    s = c.bucket( *t );    float f = c.load_factor();    f       = c.max_load_factor();    c.max_load_factor(f);    c.rehash(1000);} void test_set(){        srand( 0 );    ptr_set_test< ptr_unordered_set<Base>, Base, Derived_class, false >();    ptr_set_test< ptr_unordered_set<Value>, Value, Value, false >();    ptr_set_test< ptr_unordered_multiset<Base>, Base, Derived_class, false >();    ptr_set_test< ptr_unordered_multiset<Value>, Value, Value, false >();    test_copy< ptr_unordered_set<Base>, ptr_unordered_set<Derived_class>,                Derived_class>();    test_copy< ptr_unordered_multiset<Base>, ptr_unordered_multiset<Derived_class>,                Derived_class>();    test_transfer< ptr_unordered_set<Derived_class>, ptr_unordered_set<Base>, Derived_class>();    test_transfer< ptr_unordered_multiset<Derived_class>, ptr_unordered_multiset<Base>, Derived_class>();        ptr_unordered_set<int> set;    BOOST_CHECK_THROW( set.insert( 0 ), bad_ptr_container_operation );    set.insert( new int(0) );    set.insert( std::auto_ptr<int>( new int(1) ) );    BOOST_CHECK_THROW( (set.replace(set.begin(), 0 )), bad_ptr_container_operation );    BOOST_CHECK_THROW( (set.replace(set.begin(), std::auto_ptr<int>(0) )), bad_ptr_container_operation );    test_unordered_interface< ptr_unordered_set<Base>, Derived_class >();    test_unordered_interface< ptr_unordered_multiset<Base>, Derived_class >();}using boost::unit_test::test_suite;test_suite* init_unit_test_suite( int argc, char* argv[] ){    test_suite* test = BOOST_TEST_SUITE( "Pointer Container Test Suite" );    test->add( BOOST_TEST_CASE( &test_set ) );    return test;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -