size_t i = 0与迭代器一起在for语句头定义时出现错误
// 编写程序由从标准输入设备读入的元素数据建立一个 int型 vector对象,然后//动态创建一个与该 vector 对象大小一致的数组,把 vector 对象的所有元素复
//制给新数组。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> ivec;
int inum;
cout << "请输入一个整形数组以ctrl+z结束:" ;
// 从键盘读入数据
while (cin >> inum)
{
ivec.push_back(inum);
}
const int arry_size= ivec.size();
int *ip = new int[arry_size];
size_t i = 0; // 为什么i要在外面定义才可以,若是在for的语句头定义就有错误呢?
cout << "数组的个元素为:"
for (vector <int>::iterator ix = ivec.begin(); ix != ivec.end(); ++ix)
{
ip[i] = *ix;
cout << ip[i] << " "; //将容器里面的内容复制到动态数组里
++i;
}
delete [] ip;
cout << endl;
return 0;
}
注:不用告诉我可以不用这种方法,我只想知道出现这种情况是为什么 呵呵