想实验下erase,简单写了个实验代码,发现出现死循环,求救
想实验下erase,简单写了个实验代码,发现出现死循环,求救
#include <iostream>
#include <vector>;
using namespace std;
int main()
{ char t;
int* p1;
vector<int> c;
c.push_back(1);
c.push_back(2);
c.push_back(3);
for(int i=0;i<c.size();++i)
{cout<<c[i]<<c.size()<<endl;}
p1=&c.at(1);
c.erase(p1);
c.size();
for(int j=0;j<c.size();++i)
{cout<<c[j]<<endl;}
cin>>t;
}
出现死循环,问题出在哪里呢?
[解决办法]
int j=0;j<c.size();++i
改成
int j=0;j<c.size();++j
[解决办法]
for(int j=0;j<c.size();++i)//++j
{cout<<c[j]<<endl;}
cin>>t;//这句是用来干什么的?
[解决办法]
for(int j=0;j<c.size();++i)
是++j
[解决办法]
cin>>t估计是想跟getchar类似的。