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


C++ DList::pop_front方法代码示例

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


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

示例1: uTest

    bool uTest( UnitTest *utest_p)
    {
        DList<int> list;
        list.push_back(5);
        list.push_back(10);
        Unit *u = list.first();
        
        UTEST_CHECK( utest_p, u);
        UTEST_CHECK( utest_p, list.size() == 2);

        int& f = u->val();
        f = 15;
        
        int sum = 0;
        for ( Unit* e = list.first (); e!= 0; e = e->next() )
        {
            sum += e->val();
        }

        UTEST_CHECK( utest_p, sum == 25);

        u = list.first();

        UTEST_CHECK( utest_p, u->next() == list.last() );
        UTEST_CHECK( utest_p, u->val() == 15);

        Unit * last = list.erase( u);

        UTEST_CHECK( utest_p, last->next() == 0); 
        UTEST_CHECK( utest_p, last->prev() == 0);
        UTEST_CHECK( utest_p, last == list.first());
        UTEST_CHECK( utest_p, last == list.last());
        
        // Test clear
        list.clear();

        UTEST_CHECK( utest_p, list.size() == 0);
        UTEST_CHECK( utest_p, list.empty() );
        UTEST_CHECK( utest_p, list.first() == 0);
        UTEST_CHECK( utest_p, list.last() == 0);

        //--- Test insert and reverse
        list.push_front( 10);// list: 10
        list.push_front( 20);// list: 20 10
        list.push_front( 40);// list: 40 20 10
        
        u= list.first()->next();
        list.insert( u, 30); // list: 40 30 20 10
        
        list.reverse(); // list: 10 20 30 40

        UTEST_CHECK( utest_p, list.first()->val() == 10);
        UTEST_CHECK( utest_p, list.first()->next()->val() == 20);
        UTEST_CHECK( utest_p, list.first()->next()->next()->val() == 30);
        
        UTEST_CHECK( utest_p, list.last()->val() == 40);


//
		list.clear();
		UTEST_CHECK(utest_p, list.size() == 0);
		UTEST_CHECK(utest_p, list.empty());
		UTEST_CHECK(utest_p, list.first() == 0);
		UTEST_CHECK(utest_p, list.last() == 0);
		for (int i = 0; i < 200; i++)
		{
			list.push_back(i);
			list.push_front(i + 1);
		}
		UTEST_CHECK(utest_p, list.size() == 400);
		UTEST_CHECK(utest_p, list.first()->val() == 200);
		UTEST_CHECK(utest_p, list.first()->next()->val() == 199);
		UTEST_CHECK(utest_p, list.last()->val() == 199);
		for (int i = 0; i < 200; i++)
		{
			list.pop_front();
		}
		UTEST_CHECK(utest_p, list.size() == 200);
		UTEST_CHECK(utest_p, list.first()->val() == 0);
		UTEST_CHECK(utest_p, list.last()->val() == 199);
		list.reverse();
		UTEST_CHECK(utest_p, list.first()->val() == 199);
		UTEST_CHECK(utest_p, list.last()->val() == 0);
		list.erase(list.first()->next());
		UTEST_CHECK(utest_p, list.first()->val() == 0);
		UTEST_CHECK(utest_p, list.first()->next()->val() == 2);
		list.clear();
		UTEST_CHECK(utest_p, list.size() == 0);

        return utest_p->result();
    }
开发者ID:Shishpan,项目名称:tasks,代码行数:91,代码来源:impl.cpp


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