C++ primer 5th课后题 9.19、9.20、9.26、9.27、9.28
来源:互联网 发布:网络写手收入排行 编辑:程序博客网 时间:2024/09/21 06:35
//习题9.19int main(){ string str; deque<string> dq; while (cin >> str) { dq.push_back(str); } //iterator for (auto sb = dq.cbegin(); sb != dq.cend(); sb++) cout << *sb << endl;}//习题9.20int main(){ list<int> lit{0,1,2,3,4,5,6,7,8,9}; deque<int> dq1, dq2; for (auto i : lit) { if (i % 2) dq2.push_back(i); else dq1.push_back(i); } for (auto j : dq1) cout << j << endl; for (auto j : dq2) cout << j << endl;}//习题9.26int main(){ int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21 , 55, 89 }; vector<int> v1; list<int> lt1; v1.assign(ia, ia + 11); lt1.assign(ia, ia + 11); auto vb = v1.begin(); auto lb = lt1.begin(); //vector<int>::iterator vb = v1.begin(); while(vb != v1.end()) { if (!((*vb) % 2)) vb = v1.erase(vb);//擦出后将返回值给vb,否则vb自己不会增加 v1.erase(vb); else vb++; } cout << "奇数为:" << endl; for (auto i : v1) cout << i << endl; while (lb != lt1.end()) { if ((*lb) % 2) lb = lt1.erase(lb); else lb++; } cout << "偶数为:" << endl; for (auto i : lt1) cout << i << endl; return 0;}//习题9.27int main(){ forward_list<int> flt{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; auto fltbeg = flt.begin(); auto flt_before = flt.before_begin(); //for (auto i : flt) cout << "原内容为:" << endl; for (auto i : flt) { cout << i << " "; } cout << endl; while(fltbeg != flt.end()) { if (*fltbeg % 2) fltbeg = flt.erase_after(flt_before);//将flt_before后的元素删除,相当于将其后所有元素往前提,fltbeg指向新提过来的元素 else { flt_before++; fltbeg++;// } } cout << "去除奇数后:" << endl; for (auto i : flt) { cout << i << " "; }}//习题9.28void test_insert(forward_list<string> &fl1, string str1, string str2){ bool flag = false; auto flbeg = fl1.begin(); auto flbef = fl1.before_begin(); while (flbeg != fl1.end()) { if (*flbeg == str1) { flbeg = fl1.insert_after(flbeg, str2);//注意insert与erase的区别 flag = true; } flbef = flbeg;//forward_list 不支持--操作,故为了取得end前元素的迭代器不可以end--,只能这样 flbeg++; } if (!flag) fl1.insert_after(flbef, str2);}int main(){ forward_list<string> fl1{"I", "have", "a", "dream"}; cout << "1" << endl; test_insert(fl1, "d", "!"); for (auto i : fl1) { cout << i << " "; } cout << endl;}
0 0
- C++ primer 5th课后题 9.19、9.20、9.26、9.27、9.28
- c++Primer 5th课后题9.34、9.43、9.47、9.45、9.49
- C++ PRIMER 5TH 课后题答案1.13
- C++ PRIMER 5TH 课后题答案1.16
- C++ Primer 5th 课后习题8.10、8.11、8.13
- C++primer第5版课后练习习题答案 9.20
- C++primer第5版课后练习习题答案9.26
- C++primer第5版课后练习习题答案9.28
- c++primer第十章课后编程题
- C++Primer课后题10.14、10.20、11.7
- C++Primer课后题11.0、11.31
- C++primer函数部分课后题
- C Primer Plus 5th 2.12.5
- C Primer Plus (5th Edition)
- 《C++Primer 5th》 读书笔记2--const
- C++Primer(5th)学习-数组篇
- C Primer Plus 5th 2.12.1
- C Primer Plus 5th 2.12.2
- python 调用c库
- [kuangbin带你飞]专题四 最短路练习 P HDU 4725
- MySQL之——基于Amoeba实现读写分离
- DualPivotQuicksort 排序算法解析
- Navicat8 for MySQL数据库脚本导出中文乱码问题
- C++ primer 5th课后题 9.19、9.20、9.26、9.27、9.28
- JSP自定义标签
- 死锁产生的原因及四个必要条件
- 赛意递归
- Android中Context的使用
- c++:algorithm-find
- 配置编译安装内核
- Codeforces Round #295 (Div. 2)-C. DNA Alignment
- cmd——窗口标题及字体颜色、背景颜色设置