cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_if
remove()
remove_if()

注意:
1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没有减少
最后的一位或者两个的数据向前移动后,最后的数据没有其他数据覆盖,所以数据依然存在。
2.返回值是:新的逻辑终点,删除后,都采用逻辑终点。
error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可
//真正的删除用list的成员函数erase
/*cb43a_c++_STL_算法_删除_(1)remove_remove_if
remove()
remove_if() 注意:
1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没有减少
最后的一位或者两个的数据向前移动后,最后的数据没有其他数据覆盖,所以数据依然存在。
2.返回值是:新的逻辑终点,删除后,都采用逻辑终点。
error C2760: 语法错误: 意外的令牌“标识符”,预期的令牌为“;”
vs2017打开项目工程----> 属性 ---> c/c++ --> 语言 --> 符合模式 修改成否即可 //真正的删除用list的成员函数erase */
#include <iostream>
#include <algorithm>
#include <list>
#include <vector>
#include <functional> using namespace std;
template <typename TT>
void print(TT &il)
{
for (TT::iterator iter = il.begin(); iter != il.end(); ++iter) cout << *iter << ' ';
cout << endl;
} int main()
{
list<int> ilist;
for (int i = ; i <= ; ++i)
{
ilist.push_front(i);
ilist.push_back(i);
}
print(ilist); list<int>::iterator end;
end=remove(ilist.begin(), ilist.end(), );//返回的是一个逻辑终点。不是ilist.end的位置
cout << "3删除后的情况:" << endl;
print(ilist); cout << "返回一个逻辑终点的情况:" << endl; for (list<int>::iterator iter = ilist.begin(); iter != end; ++iter)
{
cout << *iter << ' '; }
cout << endl;
cout << "一共删除了:" << distance(end, ilist.end()) << " 个元素" << endl; cout << "真正的删除,erase后的结果。" << endl;
ilist.erase(end, ilist.end());
print(ilist); vector<int> ivec;
for (int i = ; i <= ; ++i)
ivec.push_back(i);
for (int i = ; i <= ; ++i)
ivec.push_back(i);
for (int i = ; i <= ; ++i)
ivec.push_back(i);
cout << "vector里面的数据:" << endl;
print(ivec); cout << "删除5,remove与erase结合" << endl;
ivec.erase(remove(ivec.begin(), ivec.end(), ),ivec.end());
print(ivec); cout << "remove_if结合预定义的函数对象进行操作,删除小于5的数,实现真正的删除" << endl;
//remove_if返回一个迭代器的位置,然后,erase迭代器之间的数据。
ivec.erase(remove_if(ivec.begin(), ivec.end(), bind2nd(less<int>(), )), ivec.end());
print(ivec);
return ;
}
cb43a_c++_STL_算法_删除_(1)remove_remove_if的更多相关文章
- cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据unique(b,e),删除连续性的,删除重复的数据,比如如果有两个连续的5,5,则留下一个.uniqu ...
- cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...
- 20150629_Andriod_06_插入_删除_弹出式操作数据
Fr_06_view_s6 --> activity_f6_insert --> activity_f7__delete ******************** ...
- 详解SimpleXML添加_修改_删除_遍历XML节点属性
SimpleXML概述 要处理XML 文件,有两种传统的处理思路:SAX 和DOM.SAX 基于事件触发机制,对XML 文件进行一次扫描,完成要进行的处理:DOM 则将整个XML 文件构造为一棵DOM ...
- cb37a-_c++_STL_算法_复制元素copy_copy_backward
cb37a-_c++_STL_算法_复制元素copy_copy_backward copy(),同一个容器内部区间的拷贝,或者容器与容器之间的拷贝copy_backward()//向后copy 注意: ...
- cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...
- cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...
- cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...
- cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition random_shuffle()//重排,随机重排,打乱顺序 partition()分区,把 ...
随机推荐
- EL表达式用法---查询博客
jsp脚本:<%=request.getAttribute(name)%>EL表达式替代上面的脚本:${requestScope.name} 使用EL最主要的作用是获得四大域中的数据,格式 ...
- kubeadm 搭建kubernetes集群环境
需求 kubeadm 搭建kubernetes集群环境 准备条件 三台VPS(本文使用阿里云香港 - centos7.7) 一台能SSH连接到VPS的本地电脑 (推荐连接工具xshell) 安装步骤 ...
- .NET Core HttpClient源码探究
前言 在之前的文章我们介绍过HttpClient相关的服务发现,确实HttpClient是目前.NET Core进行Http网络编程的的主要手段.在之前的介绍中也看到了,我们使用了一个很重要的 ...
- DevOps生命周期,你想知道的全都在这里了!
在大多数情况下,软件应用程序开发由于其规范性和复杂性而变得很耗时. 为了在短时间内交付高质量应用程序,软件开发人员正在遵循一套通用的实践,称为DevOps生命周期. 那么,DevOps在软件应用程序开 ...
- [优文翻译]001.真正程序员该是什么样的(How To Be A Real Programmer)
01.Real Programmers don't write specs -- users should consider themselves lucky to get any programs ...
- 【转】网页的title左边的小图片怎么添加
首先,代码中的title标签里是不能加图片的.但是浏览器标提栏前面是可以加一个小图标的. 解决方案:第一步,做一个16 X 16像素的ico格式的图标.具体操作方法是,先在Photoshop中做一个透 ...
- Java实现 LeetCode 733 图像渲染(DFS)
733. 图像渲染 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间. 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的 ...
- Java实现 LeetCode 502 IPO(LeetCode:我疯起来连自己都卖)
502. IPO 假设 力扣(LeetCode)即将开始其 IPO.为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本. 由于资源有限,它只能在 IPO 之前完 ...
- Java实现【USACO】1.1.2 贪婪的礼物送礼者 Greedy Gift Givers
[USACO]1.1.2 贪婪的礼物送礼者 Greedy Gift Givers 题目描述 对于一群要互送礼物的朋友,你要确定每个人送出的礼物比收到的多多少(and vice versa for th ...
- JavaScript实现html购物车代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...