node.erase(--it)为什么要--
查看原帖
node.erase(--it)为什么要--
586854
Bary楼主2023/2/28 21:01
#include<stdio.h>
#include<list>
#include<iostream>
using namespace std;
list<int>node;
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		node.push_back(i);
	}
	list<int>::iterator it=node.begin();
	while(node.size()>1)
	{
		for(int i=1;i<m;i++)
		{
			it++;
			if(it==node.end())
			{
				it=node.begin();
			}
		}
		cout<<(*it)<<endl;
		list<int>::iterator next=++it;
		if(next==node.end())
		{
			next=node.begin();
		}
		node.erase(--it);
		it=next;
	}
	cout<<*it;
	return 0;
} 
2023/2/28 21:01
加载中...