欢迎光临散文网 会员登陆 & 注册

【链表】士兵队列训练问题 参考题解

2022-12-24 16:12 作者:空梦MJ历险记  | 我要投稿

原始题意

        某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数,以此类推,直到剩下的人数不超过三人为止。

       输入多个测试数据组,第一行为组数 N,接着为 N 行新兵人数,新兵人数不超过5000人。输出共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。

参考样例


题解报告

前言:其实原题是想让我用队列(queue)做的,题目是:【队列】士兵队列训练问题。但是我发现吧,链表(list)好像更方(偷)便(懒)【滑稽

代码中有用到这么一处:list<int> l1一步步看,list 指的是数据结构——链表,中间 <int> 指的是链表保存的数据,和 queue(队列)、stack(栈)很像。

还有一点:list<int>::iterator it. 后面的两个冒号,意思是:什么什么的。比如,std::cout、std::cin 都是表示 std(标准命名空间)的 cin、cout. 最后的 iterator 为迭代器,何为迭代器?


An iterator is any object that, pointing to some element in a range of elements (such as an array or a container), has the ability to iterate through the elements of that range using a set of operators (with at least the increment (++) and dereference (*) operators).

迭代器是指任何指向某个范围内(如数组或容器)中的某个元素的对象,能够使用操作符(至少使用递增(++)和指针(*)操作符)迭代该范围内的元素。

        迭代器和 C++ 的指针非常类似,它可以是需要的任意类型,通过迭代器可以指向容器中的某个元素,如果需要,还可以对该元素进行读或写操作。

        说了这么多,还是看看迭代器具体的使用吧,注释都写在代码里了!

预告:下一期讲Noip2002知名例题:均分纸牌

预告2:点赞过66出坤坤鬼畜

点个赞,投个币(电脑版),收个藏吧,谢谢啦!

E N D



【链表】士兵队列训练问题 参考题解的评论 (共 条)

分享到微博请遵守国家法律