练习C++的vector语法-约瑟夫问题

 1 //测试vector,约瑟夫问题 
 2 #include <iostream>
 3 #include <vector>
 4 using namespace std;
 5 int main()
 6 {
 7     vector <int> a;//定义向量 
 8     int i,tk,m,n;
 9     cin>>n>>m;
10     for(i=1;i<=n;i++)
11         a.push_back(i);
12     vector<int>::iterator it; //定义迭代器,使用方法感觉跟C语言的指针非常像 
13     tk=0;
14     for(it=a.begin();a.begin()<a.end();)
15     {
16         tk++;
17         if(tk==m){
18             tk=0;
19             cout<<*it<<" ";
20             a.erase(it);//删除迭代器指向的元素,删除后后面的元素会往前移 
21         }else it++;
22         if(it==a.end())it=a.begin();
23     }        
24     return 0;
25 } 

 

posted @ 2020-05-19 21:14  zbit  阅读(406)  评论(0编辑  收藏  举报