C++ Primer课后练习10.34~10.37,10.42

来源:互联网 发布:ubuntu u盘挂载路径 编辑:程序博客网 时间:2024/04/30 09:23
//练习10.34:使用reverse_iterator逆序打印一个vector#include<iostream>#include<iterator>#include<string>#include<algorithm>#include<vector>using namespace std;int main(void){vector<string> vec;string ss;while (cin >> ss){vec.push_back(ss);}for (auto t_iter = vec.crbegin();t_iter != vec.crend(); ++t_iter)cout << *t_iter << " ";cout << endl;}/*********************************************************************//练习10.35:使用普通迭代器逆序打印一个vector#include<iostream>#include<iterator>#include<string>#include<algorithm>#include<vector>using namespace std;int main(void){vector<string> vec;string ss;while (cin >> ss){vec.push_back(ss);}for (auto iter = prev(vec.cend()); iter != prev(vec.cbegin()); iter--)cout << *iter << " ";cout << endl;}/**********************************************************************///练习10.35&10.36#include<iostream>#include<list>#include<iterator>#include<algorithm>#include<vector>using namespace std;int main(void){list<int> list1{ 4, 5, 6, 7, 8, 9, 10 ,0,1,2};auto opps=find(list1.crbegin(), list1.crend(),0);   cout << *opps<< endl;vector<int> vec = { 1, 2, 3, 4, 5, 6, 7, 8, 9 ,10};auto iter1 = vec.crbegin()+ 3;//相加往前面移auto iter2 = vec.crend() -2;list<int> list2(iter1, iter2);for (auto ss : list2)cout << ss << " ";cout << endl;}
//练习10.42#include<iostream>#include<list>#include<algorithm>#include<string>using namespace std;void elimdups(list<string> & list1){list1.sort();//按字典序排列list,以便查找重复单词list1.unique();}int main(void){string word;list<string> list1;while (cin >> word)list1.push_back(word);elimdups(list1);for (auto ss : list1)cout << ss << " ";cout << endl;}


0 0
原创粉丝点击