#include <iostream>
#include <vector>
using std::cout;
using std::cin;
using std::endl;
using std::vector;
int main()
{
int n;
vector<int> ivec;
cout << "请输入一组int对象,输入完后按ctrl+z然后回车:" <<endl;
while(cin>>n)
{
ivec.push_back(n);
}
int *ip = new int[ivec.size()];
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter,++ip)
{
*ip = *iter;
cout << *ip <<endl;
}
delete [] ip;
return 0;
}
为什么我的会出现异常?请高人解释一下
原版的答案是用另外一个int指针指向ip,循环中的ip都用它来代替
#include <iostream>
#include <vector>
using std::cout;
using std::cin;
using std::endl;
using std::vector;
int main()
{
int n;
vector<int> ivec;
cout << "请输入一组int对象,输入完后按ctrl+z然后回车:" <<endl;
while(cin>>n)
{
ivec.push_back(n);
}
int *ip = new int[ivec.size()];
int *tp = ip;
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter,++tp)
{
*tp = *iter;
cout << *tp <<endl;
}
delete [] ip;
return 0;
}