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


C++ QStack::pop_back方法代码示例

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


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

示例1: sort

void PGE_Menu::sort()
{
    if(_items.size()<=1) {
        autoOffset();    //Nothing to sort!
        return;
    }

    QStack<int> beg;
    QStack<int> end;
    PGE_Menuitem * piv;
    int i=0, L, R, swapv;
    beg.push_back(0);
    end.push_back(_items.size());
    while (i>=0)
    {
        L=beg[i];
        R=end[i]-1;
        if (L<R)
        {
            piv=_items[L];
            while (L<R)
            {
                while ((namefileMoreThan(_items[R], piv)) && (L<R)) R--;
                if (L<R) _items[L++]=_items[R];

                while ((namefileLessThan(_items[L], piv)) && (L<R)) L++;
                if (L<R) _items[R--]=_items[L];
            }
            _items[L]=piv;
            beg.push_back(L+1);
            end.push_back(end[i]);
            end[i++]=(L);
            if((end[i]-beg[i]) > (end[i-1]-beg[i-1]))
            {
                swapv=beg[i];
                beg[i]=beg[i-1];
                beg[i-1]=swapv;
                swapv=end[i];
                end[i]=end[i-1];
                end[i-1]=swapv;
            }
        }
        else
        {
            i--;
            beg.pop_back();
            end.pop_back();
        }
    }

    autoOffset();
}
开发者ID:lighthouse64,项目名称:PGE-Project,代码行数:52,代码来源:pge_menu.cpp

示例2: sortElements

void PGE_LevelCamera::sortElements()
{
    if(objects_to_render.size()<=1) return; //Nothing to sort!
    QStack<int> beg;
    QStack<int> end;
    PGE_Phys_Object* piv;
    int i=0, L, R, swapv;
    beg.push_back(0);
    end.push_back(objects_to_render.size());
    while (i>=0)
    {
        L=beg[i]; R=end[i]-1;
        if (L<R)
        {
            piv=objects_to_render[L];
            while (L<R)
            {
                while ((objects_to_render[R]->zIndex()>=piv->zIndex()) && (L<R)) R--;
                if (L<R) objects_to_render[L++]=objects_to_render[R];

                while ((objects_to_render[L]->zIndex()<=piv->zIndex()) && (L<R)) L++;
                if (L<R) objects_to_render[R--]=objects_to_render[L];
            }
            objects_to_render[L]=piv; beg.push_back(L+1); end.push_back(end[i]); end[i++]=(L);
            if((end[i]-beg[i]) > (end[i-1]-beg[i-1]))
            {
                swapv=beg[i]; beg[i]=beg[i-1]; beg[i-1]=swapv;
                swapv=end[i]; end[i]=end[i-1]; end[i-1]=swapv;
            }
        }
        else
        {
            i--;
            beg.pop_back();
            end.pop_back();
        }
    }
}
开发者ID:lighthouse64,项目名称:PGE-Project,代码行数:38,代码来源:lvl_camera.cpp


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