练习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 }