ngeles"));
5、函数对象
1)list模板中又一个将断言作为参数的remove_if()成员,该函数将断言应用与区间的每一个元素如果为true,则删除这些元素。
//删除链表three中所有大于100的元素
bool tooBig(int n){return n > 100;}
list
scores; …… scores.remove_if(tooBig);
2)预定义的函数数
tranform()
前两个参数是指定容器区间的迭代器,第3个参数是指定将结果复制到哪里的迭代器,最后一个参数是一个函数符,它被应用于区间中的每个元素,生成结果中的新元素。
transform(gr8.begin(), gr8.end(), out, sqrt);
6、算法
STL将算法库分成4组
①非修改式序列操作
②修改式序列操作
③排序和相关操作
④通用数字运算
1)函数与容器的方法
首先它更适合于特定的容器,其次作为成员函数,它可以使用模板类的内存管理工具,从而在需要时调整容器的长度。
例如la是一个list
对象,使用链表的remove()方法:
la.remove(4);//链表中所有值为4的元素将被删除
还有一种形式
remove(lb.begin(), lb.end(), 4);
由于该remove()函数不是成员,因此不能调整链表的长度,它将没有删除的元素放在链表的开始位置,并返回一个指向新的超尾值的迭代器,这样,便可以用迭代器来修改容器的长度
链表中还可以使用erase来删除一个区间
lb.erase(last,lb.end());
2)使用STL
//用于显示3个容器,包含输入内容的矢量,包含单词列表的集合和包含单词计数的映象内容.cpp
#include
#include
#include
#include
#include
运行结果:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<完结2014.7.24 2:50