当前位置: 首页>>代码示例>>C++>>正文


C++ DPQ::getSize方法代码示例

本文整理汇总了C++中DPQ::getSize方法的典型用法代码示例。如果您正苦于以下问题:C++ DPQ::getSize方法的具体用法?C++ DPQ::getSize怎么用?C++ DPQ::getSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DPQ的用法示例。


在下文中一共展示了DPQ::getSize方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

BOOST_AUTO_TEST_CASE_TEMPLATE( testPushAfterPop, DPQ, both )
{
    DPQ dpq;

    dpq.push( 1 );
    const ID id1( dpq.push( 2 ) );
    dpq.push( 3 );
    dpq.push( 4 );
    BOOST_CHECK( dpq.getSize() == 4 );

    BOOST_CHECK( dpq.check() );

    BOOST_CHECK( dpq.getTop() == 1 );
    dpq.pop( id1 );
    BOOST_CHECK( dpq.getSize() == 3 );
    BOOST_CHECK( dpq.check() );

    dpq.push( 1 );
    BOOST_CHECK( dpq.getSize() == 4 );
    BOOST_CHECK( dpq.check() );

    BOOST_CHECK( dpq.getTop() == 1 );
    dpq.popTop();
    BOOST_CHECK( dpq.getTop() == 1 );
    dpq.popTop();
    BOOST_CHECK( dpq.getTop() == 3 );
    dpq.popTop();
    BOOST_CHECK( dpq.getTop() == 4 );
    dpq.popTop();
    BOOST_CHECK( dpq.isEmpty() );

    BOOST_CHECK( dpq.check() );
}
开发者ID:TheJoris,项目名称:egfrd,代码行数:33,代码来源:DynamicPriorityQueue_test.cpp

示例2: Index

BOOST_AUTO_TEST_CASE_TEMPLATE( testClear, DPQ, both )
{
    DPQ dpq;
    typedef typename DPQ::Index Index;

    dpq.push( 1 );
    dpq.push( 20 );
    dpq.push( 50 );

    BOOST_CHECK_EQUAL( Index( 3 ), dpq.getSize() );

    dpq.clear();

    BOOST_CHECK( dpq.isEmpty() );
    BOOST_CHECK( dpq.check() );

    dpq.push( 2 );
    dpq.push( 20 );
    dpq.push( 30 );

    BOOST_CHECK_EQUAL( Index( 3 ), dpq.getSize() );

    dpq.clear();

    BOOST_CHECK( dpq.isEmpty() );
    BOOST_CHECK( dpq.check() );
}
开发者ID:TheJoris,项目名称:egfrd,代码行数:27,代码来源:DynamicPriorityQueue_test.cpp

示例3: id

BOOST_AUTO_TEST_CASE_TEMPLATE( testReplace6, DPQ, both )
{
    DPQ dpq;

    dpq.push( 5 );
    dpq.push( 4 );
    dpq.push( 3 );
    const ID id( dpq.push( 1 ) );
    BOOST_CHECK( dpq.check() );

    BOOST_CHECK_EQUAL( 4, dpq.getSize() );
    BOOST_CHECK_EQUAL( 1, dpq.getTop() );

    dpq.replace( id, 3 );  // 1->3 top down

    BOOST_CHECK( dpq.check() );
    BOOST_CHECK_EQUAL( 4, dpq.getSize() );

    BOOST_CHECK_EQUAL( 3, dpq.getTop() );
    dpq.popTop();
    BOOST_CHECK_EQUAL( 3, dpq.getTop() );
    dpq.popTop();
    BOOST_CHECK_EQUAL( 4, dpq.getTop() );
    dpq.popTop();
    BOOST_CHECK_EQUAL( 5, dpq.getTop() );
    dpq.popTop();

    BOOST_CHECK( dpq.isEmpty() );
    BOOST_CHECK( dpq.check() );
}
开发者ID:TheJoris,项目名称:egfrd,代码行数:30,代码来源:DynamicPriorityQueue_test.cpp

示例4: testClear

    void testClear()
    {
        DPQ dpq;

        dpq.push( 1 );
        dpq.push( 20 );
        dpq.push( 50 );

        BOOST_CHECK_EQUAL( Index( 3 ), dpq.getSize() );

        dpq.clear();

        BOOST_CHECK( dpq.isEmpty() );
        BOOST_CHECK( dpq.checkConsistency() );

        dpq.push( 2 );
        dpq.push( 20 );
        dpq.push( 30 );

        BOOST_CHECK_EQUAL( Index( 3 ), dpq.getSize() );

        dpq.clear();

        BOOST_CHECK( dpq.isEmpty() );
        BOOST_CHECK( dpq.checkConsistency() );
    }
开发者ID:ecell,项目名称:ecell3,代码行数:26,代码来源:DynamicPriorityQueue_test.cpp

示例5: testInterleavedSortingWithPops

    void testInterleavedSortingWithPops()
    {
        DPQ dpq;

        IndexVector idVector;

        const Index MAXI( 101 );
        for( int n( MAXI-1 ); n != 0  ; n-=2 )
        {
            const Index id( dpq.push( n ) );

            if( n == 12 || n == 46 )
            {
                idVector.push_back( id );
            }
        }

        dpq.pop( idVector.back() );
        idVector.pop_back();

        BOOST_CHECK_EQUAL( MAXI/2 -1, dpq.getSize() );

        BOOST_CHECK( dpq.checkConsistency() );

        for( int n( MAXI ); n != -1  ; n-=2 )
        {
            const Index id( dpq.push( n ) );

            if( n == 17 || n == 81 )
            {
                idVector.push_back( id );
            }
        }

        for( typename IndexVector::const_iterator i( idVector.begin() );
             i != idVector.end(); ++i )
        {
            dpq.pop( *i );
        }

        BOOST_CHECK( dpq.checkConsistency() );
        BOOST_CHECK_EQUAL( MAXI-4, dpq.getSize() );

        int n( 0 );
        while( ! dpq.isEmpty() )
        {
            ++n;
            if( n == 12 || n == 46 || n == 17 || n == 81 )
            {
                continue;
            }
            BOOST_CHECK_EQUAL( n, dpq.getTop() );
            dpq.popTop();
        }

        BOOST_CHECK_EQUAL( MAXI, Index( n ) );

        BOOST_CHECK( dpq.isEmpty() );
        BOOST_CHECK( dpq.checkConsistency() );
    }
开发者ID:ecell,项目名称:ecell3,代码行数:60,代码来源:DynamicPriorityQueue_test.cpp

示例6: MAXI

BOOST_AUTO_TEST_CASE_TEMPLATE( testInterleavedSorting, DPQ, both )
{
    DPQ dpq;
    typedef typename DPQ::Index Index;

    const Index MAXI( 101 );
    for( int i( MAXI-1 ); i != 0  ; i-=2 )
    {
        dpq.push( i );
    }

    for( int i( MAXI ); i != -1  ; i-=2 )
    {
        dpq.push( i );
    }

    BOOST_CHECK_EQUAL( MAXI, dpq.getSize() );

    BOOST_CHECK( dpq.check() );

    int n( 0 );
    while( ! dpq.isEmpty() )
    {
        ++n;
        BOOST_CHECK_EQUAL( n, dpq.getTop() );
        dpq.popTop();
    }

    BOOST_CHECK_EQUAL( MAXI, Index( n ) );

    BOOST_CHECK( dpq.isEmpty() );
    BOOST_CHECK( dpq.check() );
}
开发者ID:TheJoris,项目名称:egfrd,代码行数:33,代码来源:DynamicPriorityQueue_test.cpp

示例7: testClearManyItems

    void testClearManyItems()
    {
        DPQ dpq;
        typedef typename DPQ::Index Index;

        for( int i( 0 ); i < 70000; ++i )
        {
            dpq.push( i );
        }

        BOOST_CHECK( dpq.checkConsistency() );

        dpq.clear();

        BOOST_CHECK( dpq.isEmpty() );
        BOOST_CHECK( dpq.checkConsistency() );

        dpq.push( 2 );
        dpq.push( 20 );
        dpq.push( 30 );

        BOOST_CHECK_EQUAL( Index( 3 ), dpq.getSize() );

        dpq.clear();

        BOOST_CHECK( dpq.isEmpty() );
        BOOST_CHECK( dpq.checkConsistency() );
    }
开发者ID:ecell,项目名称:ecell3,代码行数:28,代码来源:DynamicPriorityQueue_test.cpp

示例8: testInterleavedSorting

    void testInterleavedSorting()
    {
        DPQ dpq;

        const Index MAXI( 101 );
        for( int i( MAXI-1 ); i != 0  ; i-=2 )
        {
            dpq.push( i );
        }

        for( int i( MAXI ); i != -1  ; i-=2 )
        {
            dpq.push( i );
        }

        BOOST_CHECK_EQUAL( MAXI, dpq.getSize() );

        BOOST_CHECK( dpq.checkConsistency() );

        int n( 0 );
        while( ! dpq.isEmpty() )
        {
            ++n;
            BOOST_CHECK_EQUAL( n, dpq.getTop() );
            dpq.popTop();
        }

        BOOST_CHECK_EQUAL( MAXI, Index( n ) );

        BOOST_CHECK( dpq.isEmpty() );
        BOOST_CHECK( dpq.checkConsistency() );
    }
开发者ID:ecell,项目名称:ecell3,代码行数:32,代码来源:DynamicPriorityQueue_test.cpp

示例9: testSimpleSortingWithPops

    void testSimpleSortingWithPops()
    {
        DPQ dpq;

        IndexVector idVector;

        const Index MAXI( 100 );
        for( int n( MAXI ); n != 0  ; --n )
        {
            Index id( dpq.push( n ) );
            if( n == 11 || n == 45 )
            {
                idVector.push_back( id );
            }
        }

        BOOST_CHECK( dpq.checkConsistency() );

        BOOST_CHECK_EQUAL( MAXI, dpq.getSize() );

        for( typename IndexVector::const_iterator i( idVector.begin() );
             i != idVector.end(); ++i )
        {
            dpq.pop( *i );
        }

        BOOST_CHECK_EQUAL( MAXI - 2, dpq.getSize() );

        int n( 0 );
        while( ! dpq.isEmpty() )
        {
            ++n;
            if( n == 11 || n == 45 )
            {
                continue; // skip
            }
            BOOST_CHECK_EQUAL( int( n ), dpq.getTop() );
            dpq.popTop();
        }

        BOOST_CHECK_EQUAL( MAXI, Index( n ) );

        BOOST_CHECK( dpq.isEmpty() );
        BOOST_CHECK( dpq.checkConsistency() );
    }
开发者ID:ecell,项目名称:ecell3,代码行数:45,代码来源:DynamicPriorityQueue_test.cpp


注:本文中的DPQ::getSize方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。