C++ primer 第五版 中文版 练习 9.31 个人code
2014-08-27 22:50
357 查看
C++ primer 第五版 中文版 练习 9.31
题目:第316页中删除偶数值元素并复制奇数值元素的程序不能用于list或forward_list。为什么?修改程序,使之也能用于这些类型。
答:
list 不支持+的操作,forward_list不支持直接insert,必须要有个前驱。
题目:第316页中删除偶数值元素并复制奇数值元素的程序不能用于list或forward_list。为什么?修改程序,使之也能用于这些类型。
答:
list 不支持+的操作,forward_list不支持直接insert,必须要有个前驱。
/* 第316页中删除偶数值元素并复制奇数值元素的程序不能用于list或forward_list。为什么? 修改程序,使之也能用于这些类型。 */ #include <iostream> #include <list> #include <forward_list> using std::cout; using std::endl; using std::list; using std::forward_list; int main() { list<int> llist = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; forward_list<int> flist = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; cout << "操作前list容器的内容为:"; for (auto &a : llist) cout << a << " "; cout << endl; auto iter = llist.begin(); while (iter != llist.end()) { if (*iter % 2) { iter = llist.insert(iter, *iter); ++iter; ++iter; } else { iter = llist.erase(iter); } } cout << "操作后list容器的内容为:"; for (auto &a : llist) cout << a << " "; cout << endl; cout << "操作前forward_list容器的内容为:"; for (auto &a : flist) cout << a << " "; cout << endl; auto tmpiter = flist.before_begin(); auto iter1 = flist.begin(); while (iter1 != flist.end()) { if (*iter1 % 2) { iter1 = flist.insert_after(iter1, *iter1); tmpiter = iter1; ++iter1; } else { iter1 = flist.erase_after(tmpiter); } } cout << "操作后forward_list容器的内容为:"; for (auto &a : flist) cout << a << " "; cout << endl; return 0; }执行结果:
相关文章推荐
- C++ primer 第五版 中文版 练习 10.14 个人code
- C++ primer 第五版 中文版 练习 10.18 个人code
- C++ primer 第五版 中文版 练习 10.30 个人code
- C++ primer 第五版 中文版 11.3.1 节练习 个人code
- C++ primer 第五版 中文版 练习 12.20 个人code
- C++ primer 第五版 中文版 练习 9.3 & 练习 9.4 个人 code
- C++ primer 第五版 中文版 练习 9.50 个人code
- C++ primer 第五版 中文版 练习 10.15 个人code
- C++ primer 第五版 中文版 练习 10.21 个人code
- C++ primer 第五版 中文版 练习 12.23 个人code
- C++ primer 第五版 中文版 练习 10.20 个人code
- C++ primer 第五版 中文版 练习 10.22 个人code
- C++ primer 第五版 中文版 练习 10.25个人code
- C++ Primer 第五版 中文版 练习 13.13 个人code
- C++ Primer 第五版 中文版 练习 13.23 个人code
- C++ primer 第五版 中文版 练习 10.24个人code
- C++ primer 第五版 中文版 练习 10.27个人code
- C++ primer 第五版 中文版 练习 10.37 个人code
- C++ Primer 第五版 中文版 练习 13.39 个人code
- C++ primer 第五版 中文版 练习 10.34 个人code