谁能帮我看看这个小程序?
问题:
请写一个程序,使它接受下列定义:
int ia[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89}
list<int> ilist(ia, ia+11)
用单个iterator形式的erase()删除ilist中所有奇数位置的元素。
我的源程序如下:
#include <iostream>
#include <list>
#include <conio.h>
using namespace std;
int main()
{
int ia[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89};
list<int> ilist(ia, ia + 11);
int size = ilist.size();
list<int>::iterator iter;
//show the elements of ilist
cout << "ilist("<< size <<"): {";
int i = size;
for (iter = ilist.begin(); iter != ilist.end(); ++iter, --i) {
cout << *iter;
if (i != 1)
cout << ", ";
}
cout << "}" << endl;
//delete the elements in odd position
i = 1;
for (iter = ilist.begin(); i < size && iter != ilist.end(); ++iter, ++i)
if ( i % 2 )
ilist.erase(iter);
size = ilist.size();
i = size;
//show the result
cout << "\nAfter the deletion operation...\n"
<< "ilist("<< size <<"): {";
for (iter = ilist.begin(); iter != ilist.end(); ++iter, --i) {
cout << *iter;
if (i != 1)
cout << ", ";
}
cout << "}" << endl;
cout << "\nPress any key to exit..." << endl;
getch();
return 0;
}
程序调试环境:Dev-C++ 4.9.8.0
运行结果:程序异常中止