C++Primer第五版 第十章习题答案(41~42)

来源:互联网 发布:美国经济数据gdp 编辑:程序博客网 时间:2024/05/01 19:33

41:算法的命名规范:_if 非重载,满足谓词条件的版本。_copy拷贝版本的算法

(a):遍历beg到end,找到oldVal就用newVal替换

(b):遍历beg到end,找到满足pred条件的就用newVal替换

(c):遍历beg到end,找到oldVal就用newVal替换,并将其拷贝至dest

(d):遍历beg到end,找到满足pred条件的就用newVal替换,并将其拷贝至dest


42:知识点1:sort()需要随机访问迭代器,所以不能用于list和forward_list.

知识点2:对于list和forward_list应优先使用其成员函数版本的算法,皆返回void.

知识点3:remove()删除元素,reverse()反转元素顺序,sort()排序,unique()删除相同元素

知识点4:链表类型还定义了splice成员算法,其实链表数据结构所特有的,主要用于合并两个链表


#include<iostream>  #include<fstream>#include<string>  #include<vector> #include<list>#include<algorithm>  #include<numeric>  #include<functional>#include<iterator>using namespace std;using namespace placeholders;//占位符的命名空间int main(int argc, char**argv)  { string a[10] = {"sdc","sddc","sdec","sfdc","sdec","sdc","sdc","fsdc","sadc","fsdc"};list<string> list1(a,a+10);list1.sort();//使用其成员函数版本的算法,排序list1.unique();//删除相同元素for (auto it1 = list1.begin(); it1 != list1.end(); ++it1){cout<<*it1<<" ";}return 0;  }  


1 0