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;
    }
  • 相关阅读:
    关于凸函数的一个等价形式的应用
    获得url?后的参数
    文字转语音SpeechSynthesisUtterance
    bat批处理文件夹内文件名的提取【转载-改编】
    易经:当你感到不顺时,不要着急,3个小锦囊,助你尽快走出困境
    君子慎独,高人慎众!
    心乱,一切皆乱;心稳,才是根本!
    慎独,是最高级的独处!
    老实人必撞这三道南墙,看完趁早回头!
    与人交谈时,多说这几种话,情商越来越高!
  • 原文地址:https://www.cnblogs.com/lau1997/p/12629001.html
Copyright © 2011-2022 走看看