c++primer第九章习题(3)
2015-11-04 18:50
447 查看
9.18
写一个程序从输入添加字符串到deque中,并用迭代器写一个循环输出deque中的元素。
解:
9.20
写一个程序从list中考元素至两个deque中。奇偶数存放不同deque。
解:
9.24
写一个程序来得到vector中的第一个元素,分别用at,序号,front和begin。用空vector测试。
非空数组:
9.24
如果349页的elem1和elem2相等会怎样?
解:不删除原容器中的元素。
9.25
用一下ia的定义,将ia复制进一个vector和list中。用erase的单个迭代器形式将list中的奇数删除,将vector中的偶数删除。
解:
写一个程序从输入添加字符串到deque中,并用迭代器写一个循环输出deque中的元素。
解:
int _tmain(int argc, _TCHAR* argv[]) { deque<string> list1; string word; while (cin>>word) { list1.push_back(word); } auto iter1 = list1.begin(); auto iter2 = list1.end(); for (; iter1 != iter2;++iter1) { cout << *iter1 << endl; } return 0; }
9.20
写一个程序从list中考元素至两个deque中。奇偶数存放不同deque。
解:
int _tmain(int argc, _TCHAR* argv[]) { list<int> list1 = { 1, 2, 3, 4, 5, 6, 7, 8 }; deque <int> list2, list3; auto iter1 = list1.begin(); auto iter2 = list1.end(); for (; iter1 != iter2;++iter1) { if (*iter1 % 2) { list2.push_back(*iter1); } else list3.push_back(*iter1); } for (auto c : list2) { cout << c << endl; } for (auto c:list3) { cout << c << endl; } return 0; }
9.24
写一个程序来得到vector中的第一个元素,分别用at,序号,front和begin。用空vector测试。
非空数组:
int _tmain(int argc, _TCHAR* argv[]) { vector<int> list1 = { 1, 2, 3, 4, 5, 6, 7, 8 }; auto val1 = list1.at(0); auto val2 = list1[0]; auto val3 = list1.front(); auto val4 = *list1.begin(); cout << val1 << endl; cout << val2 << endl; cout << val3 << endl; cout << val4 << endl; return 0; }
空数组: 报错。
9.24
如果349页的elem1和elem2相等会怎样?
解:不删除原容器中的元素。
9.25
用一下ia的定义,将ia复制进一个vector和list中。用erase的单个迭代器形式将list中的奇数删除,将vector中的偶数删除。
解:
int _tmain(int argc, _TCHAR* argv[]) { int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89 }; vector<int> list1; list<int> list2; for (int i = 0; i != sizeof(ia)/4;++i) { list1.push_back(ia[i]); list2.push_back(ia[i]); } auto iter1 = list1.begin(); while (iter1 != list1.end()) { if (!(*iter1 % 2)) { iter1 = list1.erase(iter1); } else ++iter1; } auto iter2 = list2.begin(); while (iter2 != list2.end()) { if (*iter2 % 2) { iter2 = list2.erase(iter2); } else ++iter2; } for (auto c:list1) { cout << c << endl; } cout << endl; for (auto c:list2) { cout << c << endl; } return 0; }
相关文章推荐
- C语言程序的三种结构
- bits/stdc++.h
- 推排序算法C/C++
- 无锁编程:c++11基于atomic实现共享读写锁(写优先)
- C++写geohash
- C++ STL算法系列4---unique , unique_copy函数
- C++虚函数
- 仓库软件管理系统设计思路(神龟管理1.0版)
- c++文件流基本用法(fstream, ifstream, ostream)
- 在VS中如何用C++连接Mysql
- C语言运算符优先级
- 对话框退出时,调用函数
- 设计模式之组合模式
- C++ STL算法系列3---求和:accumulate
- C++ STL算法系列2---find ,find_first_of , find_if , adjacent_find的使用
- 标准C++中的string类的用法总结
- C++ STL算法系列1---count函数
- C语言函数指针基础
- C++ 使用STL string 实现的split,trim,replace-修订
- C语言 - 什么是数据类型?数据类型的本质