STL算法库-删除算法
来源:互联网 发布:合肥美工招聘 编辑:程序博客网 时间:2024/05/16 18:56
一、remove
原型:remove(iterator first,iterator last,const T& val)
定义:移除所有值到等于val的元素,函数返回删除后的序列的末尾位置,序列的大小不变,用最后一个元素进行补齐
原型:remove_if(iterator first,iterator last,Pred pr)
定义:移除所有使得pr值为true的元素,函数返回删除后序列的末尾位置,序列的大小不变,用最后一个元素进行补齐
二、remove_copy
原型:remove_copy(iterator1 first,iterator1 last,iterator2 dest,const T& value)
定义:在复制的过程中移除所有值等于value的元素
原型:remove_copy(iterator1 first,iterator1 last,iterator2 dest,Pred pr)
定义:在复制过程中移除所有使得pr为ture的元素
三、unique
原型:unique(iterator first,iterator last)
定义:移除区间中的连续重复元素
原型:unique(iterator first,iterator last,Compare comp)
定义:移除区间中连续的使得comp为true的元素
四、unique_copy
原型;unique(iterator1 first,iterator1 last,iterator2 dest)
定义:复制时移除区间中的连续重复元素
原型:unique(iterator1 first,iterator1 last,iterator2 dest,Compare comp)
定义:复制时移除区间中连续的使得comp为true的元素
原型:remove(iterator first,iterator last,const T& val)
定义:移除所有值到等于val的元素,函数返回删除后的序列的末尾位置,序列的大小不变,用最后一个元素进行补齐
原型:remove_if(iterator first,iterator last,Pred pr)
定义:移除所有使得pr值为true的元素,函数返回删除后序列的末尾位置,序列的大小不变,用最后一个元素进行补齐
二、remove_copy
原型:remove_copy(iterator1 first,iterator1 last,iterator2 dest,const T& value)
定义:在复制的过程中移除所有值等于value的元素
原型:remove_copy(iterator1 first,iterator1 last,iterator2 dest,Pred pr)
定义:在复制过程中移除所有使得pr为ture的元素
三、unique
原型:unique(iterator first,iterator last)
定义:移除区间中的连续重复元素
原型:unique(iterator first,iterator last,Compare comp)
定义:移除区间中连续的使得comp为true的元素
四、unique_copy
原型;unique(iterator1 first,iterator1 last,iterator2 dest)
定义:复制时移除区间中的连续重复元素
原型:unique(iterator1 first,iterator1 last,iterator2 dest,Compare comp)
定义:复制时移除区间中连续的使得comp为true的元素
示例代码:
#include "stdafx.h"#include "iostream"#include "algorithm"#include "functional"#include "iterator"#include "vector"using namespace std;bool mylessthan(int ele1,int ele2){ if(ele1>3||ele2>3) return true; return false;}int _tmain(int argc, _TCHAR* argv[]){ int source[]={1,4,4,6,1,2,2,3,1,6,6,6,5,7,5,4,4}; int num=sizeof(source)/sizeof(int); vector<int> l1,lll(num,0); vector<int> l2(num,0),l3(num,0); vector<int>::iterator it1; l1.assign(source,source+num); cout<<"the original vector l1 is as below"<<endl; copy(l1.begin(),l1.end(),ostream_iterator<int>(cout," ")); cout<<endl; cout<<"移?除y元a素?1:"<<endl; it1=remove(l1.begin(),l1.end(),1); l1.erase(it1,l1.end()); copy(l1.begin(),l1.end(),ostream_iterator<int>(cout," ")); cout<<endl; cout<<"移?除y所?有D大?于?的?元a素?"<<endl; it1=remove_if(l1.begin(),l1.end(),bind2nd(greater<int>(),6)); l1.erase(it1,l1.end()); copy(l1.begin(),l1.end(),ostream_iterator<int>(cout," ")); cout<<endl; cout<<"复2制?时?移?除y所?有D等?于?的?元a素?"<<endl; it1=remove_copy(l1.begin(),l1.end(),l2.begin(),2); copy(l2.begin(),it1,ostream_iterator<int>(cout," ")); cout<<endl; cout<<"复2制?时?移?除y所?有D大?于?的?元a素?"<<endl; it1=remove_copy_if(l1.begin(),l1.end(),l3.begin(),bind2nd(greater<int>(),5)); copy(l3.begin(),it1,ostream_iterator<int>(cout," ")); cout<<endl; cout<<"移?除y所?有D连?续?重?复2的?元a素?"<<endl; it1=unique(l3.begin(),l3.end()); copy(l3.begin(),it1,ostream_iterator<int>(cout," ")); cout<<endl; cout<<"移?除y所?有D的?连?续?的?大?于?的?元a素?"<<endl; it1=unique(l3.begin(),l3.end(),mylessthan); copy(l3.begin(),it1,ostream_iterator<int>(cout," ")); cout<<endl; return 0;}
0 0
- STL算法库-删除算法
- STL算法 -------- 删除算法1
- STL算法 -------- 删除算法2
- STL算法 -------- 删除算法3
- STL算法---拷贝/删除/替换算法
- 九、STL算法-删除算法(unique、remove)
- STL算法 移除.删除(更易型)
- STL算法库概述
- C++ STL 算法:删除算法(1)remove、remove_if
- C++ STL 算法:删除算法(2)remove_copy、remove_copy_if
- C++ STL 算法:删除算法(3)unique、unique_copy
- STL算法
- STL 算法
- STL 算法
- STL-算法
- STL算法
- STL 算法
- STL算法
- css继承
- 如何在QML中使用不同的字体(font)
- 关于三位一体2的渲染(网摘)
- C语言union(联合体 共用体)
- 红糖和赤砂糖
- STL算法库-删除算法
- 不是更快更强,而是更加自如——2015年终总结
- HTML转为markdown工具
- (转)java中short类型变量
- POJ--1936 All in All(水题,暴力即可)
- Windows平台分布式架构实践 - 负载均衡
- (转)JAVA中short和short相加自动转化为int
- TFA
- 诸神之战:世界秩序与现代中国