zoukankan      html  css  js  c++  java
  • 队列

    C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的。C++队列queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

    C++队列Queue类成员函数如下:

    back()返回最后一个元素
    empty()如果队列空则返回真
    front()返回第一个元素
    pop()删除第一个元素
    push()在末尾加入一个元素
    size()返回队列中元素的个数

    Queue 的基本操作举例如下:

    queue入队,如例:q.push(x);将x 接到队列的末端。
    queue出队,如例:q.pop();弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
    访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
    访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
    判断queue队列空,如例:q.empty(),当队列空时,返回true。
    访问队列中的元素个数,如例:q.size()。

    题目描述

    nn 个人围成一圈,从第一个人开始报数,数到 mm 的人出列,再由下一个人重新从 11 开始报数,数到 mm 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。

    输入格式

    输入两个整数 n,mn,m。

    输出格式

    输出一行 nn 个整数,按顺序输出每个出圈人的编号。

     

        #include<iostream>
        #include<queue>
        using namespace std;
    
        int main()
        {
            int tot, outNum, nowNum = 1;
            queue<int> q;
            cin >> tot >> outNum;                        //读取数据
            for (int i = 1; i <= tot; i++)q.push(i);    //初始化队列
            while (!q.empty())                    //在队列不为空时继续模拟
            {
                if (nowNum == outNum)
                {
                    cout << q.front() << " ";    //打印出局的人的编号
                    q.pop();                    //出局
                    nowNum = 1;                    //初始化现在的数字
                }
                else
                {
                    nowNum++;
                    q.push(q.front());            //排至队尾
                    q.pop();
                }
            }
            cout << endl;
            return 0;
    }
  • 相关阅读:
    第二次站立会议4
    第二次站立会议3
    建议总结
    对搜狗输入法的个人评价
    第二期站立会议10
    典型用户和用户场景描述
    第二期站立会议9
    第二期站立会议8
    第二期站立会议7
    第二期站立会议6
  • 原文地址:https://www.cnblogs.com/lau1997/p/12629001.html
Copyright © 2011-2022 走看看