STL学习系列之二:标准模板库(STL)介绍
(), Birds.end(), PrintIt); Birds.remove("cockatoo"); cout << "Now no cockatoos" << endl; for_each(Birds.begin(), Birds.end(), PrintIt); } 输出是: Original list with cockatoos cockatoo galah cockatoo rosella corella Now no cockatoos galah rosella corella 16 使用STL通用算法remove()从list中删除元素 通用算法remove()使用和list的成员函数不同的方式工作。一般情况下不改变容器的大小。
通用remove()算法返回一个指向新的list的结尾的iterator。从开始到这个新的结尾(不含新结尾元素)的范围 包含了remove后剩下所有元素。你可以用list成员函数erase函数来删除从新结尾到老结尾的部分。 17 使用STL通用算法stable_partition()和list成员函数splice()来划分一个list 我们将完成一个稍微有点复杂的例子。它演示STL通用算法stable_partition()算法和一个list成员函数 splice()的变化。注意函数对象的使用和没有使用循环。通过简单的语句调用STL算法来控制。 stable_partition()是一个有趣的函数。它重新排列元素,使得满足指定条件的元素排在 不满足条件的元素前面。它维持着两组元素的顺序关系。 splice 把另一个list中的元素结合到一个list中。它从源list中删除元素。 在这个例子中,我们想从命令行接收一些标志和四个文件名。文件名必须’按顺序出现。通过使用stable_partition() 我们可以接收和文件名混为任何位置的标志,并且不打乱文件名的顺序就把它们放到一起。 由于记数和查找算法都很易用,我们调用这些算法来决定哪个标志被设置而哪个标志未被设置。我发现容器用来管理少量的象这样的动态数据。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |