C++ Primer 学习笔记关于练习题6.12

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

请写一个程序,使它接受下列定义:

int ia[] = { 0, 1, 2, 3, 5, 8, 13, 21, 55, 89 };

list<int>ilist( ia, ia + 11 );

用单个iterator形式的erase()删除ilist中所有奇数位置的元素。

#include<iostream>

#include<list>

#include<functional>

using namespace std;

int main()

{

int ia[] = { 0,1,1,2,3,5,8,13,21,55,89 };

list<int> ilist( ia, ia+11 );

for(int i = 0; i < 11; ++i )

{

cout<< *(ia + i);

cout<<",";

}

cout<<"\n";

ilist.remove_if(bind2nd(modulus<int>(), 2));

list<int> ilist1 = ilist;

list<int>::iterator iter = ilist1.begin();

cout<<ilist1.front();

while(iter != ilist1.end())

{

cout<<*iter<<",";

}

}

这个程序是完全错误的,你可知道为什么吗?

说来也好笑,解释起来还真是不知如何来说!

待我想到合适的词汇在来解释。

我一直怀疑,lippman先生出的这道题是不是太离谱了!!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航