蔡志雄是哪里人:关于C++选迭器的问题

来源:百度文库 编辑:高考问答 时间:2024/05/04 13:11:12
小弟使用选迭器的时候出了问题,望各位大虾指教
#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::vector;

int main()
{
cout << "请输入一组整数:" <<endl;
vector<int> num;
vector<int>::iterator iter = num.begin();
while(cin>>*iter)
++iter;
system("pause");
return 0;
}

此程序编译通过,但是运行时WINDOWS说遇到错误需要关闭
请说明原因并提供解决方法
此问题若能成功解决追加80悬赏
如果我想用选迭器读未知数量的整数到vector对象,应该怎么写呢?

#include <iostream>
#include <vector>

using namespace std;

int main()
{
cout << "ÇëÊäÈëÒ»×éÕûÊý£º" <<endl;

vector<int> num;
vector<int>::iterator iter = num.begin();
int b;

while (1)
{
cin >> b;

if (99 == b)
{
break;
}
else
{
num.push_back(b);
}
}

system("pause");
return 0;
}

输入“99”的时候程序退出。
因为你定义vector的时候是空的,而且没有长度,不能通过begin来访问。

#include <iostream>
#include <vector>

using namespace std;

void Display(vector<int>* vec)
{
vector<int>::iterator it = vec->begin();

for (; it != vec->end(); it++)
{
cout << *it << endl;
}
}

int main()
{
cout << "ÇëÊäÈëÒ»×éÕûÊý£º" <<endl;

vector<int> num;
vector<int>::iterator iter = num.begin();
int b;

while (1)
{
cin >> b;

if (99 == b)
{
break;
}
else if (66 == b)
{
Display(&num);
}
else
{
num.push_back(b);
}
}

system("pause");
return 0;
}

看看这段代码,当输入“66”的时候,打印出这个vector的所有元素,当输入“99”的时候程序退出。当然这些标志可以你自己定。