问题求助!
//...........从标准输入设备读入数据建立int型vector对象,然后动态创建一个与该//...........vector对象大小一致的数组,把vector对象的所有复制给新数组
#include<iostream>
#include<vector>
using namespace std;
int main()
{vector<int> ivec;
int i;
//读入数据建立int型vector对象
cout<<"enter i to vector(Ctrl+Z to end):"<<endl;
while(cin>>i)
{ivec.push_back(i);
}
//动态创建一个与vector对象大小一致的数组
int *p=new int[ivec.size()];
//int *pia=p; ............此行的//去掉
//把vector对象的所有复制给新数组
for(vector<int>::iterator index=ivec.begin();index!=ivec.end();++index,++p) ........++p改为++pia
{*p=*index; .........改为*pia=*index;
cout<<*p<<" "; ............改为cout<<*pia<<" ";
}
delete [] p;
return 0;
}
这个程序在运行时会出现错误,但是将它改成右面的情况,运行时就不会出现错误。总的来说,我就是加了一个指针,
可是加和不加不是一样的吗?请高手解释一下!谢谢!