摘要:
顺序容器只定义了很少的操作:在多数情况下,我们可以添加和删除元素。访问首尾元素、确定容器是否为空以及获得指向首元素或尾元素之后位置的迭代器。如果我们想要做:查找特定元素、替换或删除一个特定值、重排元素顺序等。标准库并未给每个容器都定义成员函数来实现这些操作,而是定义了一组泛型算法:称它们为“算法”,... 阅读全文
摘要:
10.42 使用list的算法实现排序和删除重复元素。#include#include#include#includeusing namespace std;void elimDup(list &words){ words.sort(); words.unique();}bool isS... 阅读全文
摘要:
10.29 编写程序,使用流迭代器读取一个文本文件,存入一个vector中的string里。#include#include#include#include#includeusing namespace std;int main(){ ifstream in("1.txt"); istr... 阅读全文
摘要:
10.24 给定一个string,使用bind和check_size在一个int的vector中查找第一个大于string长度的值。#include#include#include#include#includeusing namespace std;bool check_size(vector::... 阅读全文
摘要:
10.21 编写一个lambda,捕获一个局部int变量,并递减变量值,直至它变为0.一旦变量变为0,再调用lambda应该不再递减变量。lambda应该返回一个bool值,指出捕获的变量是否为0.#include#includeusing namespace std;int main(){ ... 阅读全文
摘要:
编写程序,求大于等于一个给定长度的单词有多少。我们还会修改输出,使程序只打印大于等于给定长度的单词。使用find_if实现的代码如下:#include#include#include#includeusing namespace std;void biggies(vector &words,vect... 阅读全文
摘要:
10.13 标准库定义了名为partition的算法,它接受一个谓词,对容器内容进行划分,使得谓词为true的值会排在容器的前半部分,而使谓词为false的值会排在后半部分。算法返回一个迭代器,指向最后一个使用谓词为true的元素之后的位置。编写程序,接受一个string,返回一个bool值,指出s... 阅读全文
摘要:
10.11编写程序,使用stable_sort和isShorter将传递给你的elimDups版本的vector排序。打印vector的内容。#include#include#include#includeusing namespace std;void elimDup(vector &words)... 阅读全文
摘要:
void reserve (size_type n);reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化。reserve 的参数n是推荐预分配内存的大小,实际分配的可能等于或大于这个值,即n大于capacity的值,就会reallocate... 阅读全文
摘要:
容器类型上的操作形成了一种层次:某些操作是所有容器类型都提供的,如下表所示一般来说,每个容器都定义在一个头文件中,文件名与类型名相同。即,deque定义在头文件deque中,list定义在头文件list中,以此类推。容器均定义为模板类。例如对于vector,我们必须提供额外信息来生成特定的容器类型。... 阅读全文