STL中find和sort的用法总结
STL算法
STL 提供能在各种容器中通用的算法(大约有70种),如插入、删除、查找、排序等。
许多算法操作的是容器上的一个区间(也可以是整个容器),因此需要两个参数,一个是区间起点元素的迭代器,另一个是区间终点元素的后面一个元素的迭代器。例如,排序和查找算法都需要这两个参数来指明待排序或待查找的区间。
有的算法返回一个迭代器。例如,find 算法在容器中查找一个元素,并返回一个指向该元素的迭代器。
算法可以处理容器,也可以处理普通的数组。
STL 中的大部分常用算法都在头文件** algorithm** 中定义。此外,头文件 numeric 中也有一些算法。
find算法总结
find模板原型如下:
template <class InIt, class T>
Inlt find(InIt first, InIt last, const T& val);
其功能可以是在迭代器 first、last 指定的容器的一个区间 [first, last) 中,按顺序查找和 val 相等的元素。如果找到,就返回该元素的迭代器;如果找不到,就返回 last。
**[first, last) **这个区间是一个左闭右开的区间,即 last 指向的元素其实不在此区间内。
find使用示例如下:
int arr[4] = {1,2,3,4};
vector<int> a;
vector<int>::iterator pr;
for(int i = 0; i < 4; i++)
{
    a.push_back(i);
}
   //使用find算法
vector<int>::iterator pfind;
//在a中查找3
pfind = find(a.begin(),a.end(),3);
if(*pfind == 3)
    cout << "1) " << "success"<<endl;
pfind = find(a.begin()+1,a.end(),4);
if(pfind == a.end()){
    cout << "2) " << " not success"<<endl;
}
//find在数组中使用
int *ppfind = find(arr,arr+4,20);
if(ppfind == arr+4){
    cout << "3) " << " not success"<<endl;
}
输出结果是:
1) success
2)  not success
3)  not success
sort算法总结
sort默认使用升序排列
sort算法原型
template<class_RandIt>
void sort(_RandIt first, _RandIt last);
** sort算法使用示例**
  int a[4] = {3, 4, 2, 1};
  sort(a, a+4);STL中find和sort的用法总结的更多相关文章
- STL中mem_fun和mem_fun_ref的用法
		例如:假设有如下的代码: class Employee { public: int DoSomething(){} } std::vector<Employee> Emps; 假设我们要调 ... 
- 【转】STL中mem_fun和mem_fun_ref的用法及区别
		原文:http://www.cppblog.com/mysileng/archive/2012/12/25/196615.html 引子: 怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的是 ... 
- C/C++中qsort()以及sort()的用法
		最近学弟们问快速排序的比较多,今天自己就做一下总结,快速排序在库函数里面有现成的,不用自己实现,调用一下就可以达到自己想要的结果,掌握以后就可以完全摒弃冒泡和选择了,并且时间复杂度也从O(n*n)提升 ... 
- STL中map,set的基本用法示例
		本文主要是使用了STL中德map和set两个容器,使用了它们本身的一些功能函数(包括迭代器),介绍了它们的基本使用方式,是一个使用熟悉的过程. map的基本使用: #include "std ... 
- c++中STL中的next_permutation函数基本用法
		对于next_permutation函数是针对于排列组合问题的库函数,它的排序方式是按照字典的方式排列的·: 如以下代码对于next_permutation函数的初步解释: #include<c ... 
- C/C++-STL中lower_bound与upper_bound的用法以及cmp函数
		转载于:http://blog.csdn.net/tjpuacm/article/details/26389441 不加比较函数的情况: int a[]={0,1,2,2,3}; printf(&qu ... 
- C++ STL中Map的按Key排序和按Value排序
		map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区 分),我们用map来进 ... 
- C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET
		C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ... 
- STL中mem_fun与mem_fun_ref的区别[转]
		http://www.cnblogs.com/Purple_Xiapei/archive/2012/05/27/2520483.html STL中mem_fun和mem_fun_ref的用法 分类: ... 
随机推荐
- Python列表(list)所有元素的同一操作
			针对很普遍的每个元素的操作会遍历每个元素进行操作. 这里给出了几种写法,列表每个元素自增等数学操作同理: 示例:整形列表ilist加1个数.元素类型转字符串: ilist = [1, 2, 3, 10 ... 
- 示例:WPF开发的简单ObjectProperyForm用来绑定实体表单
			原文:示例:WPF开发的简单ObjectProperyForm用来绑定实体表单 一.目的:自定义控件,用来直接绑定实体数据,简化开发周期 二.实现: 1.绑定实体对象 2.通过特性显示属性名称 3.通 ... 
- C语言----流程图(基础篇四)
			大家晚上好,最近忙每天忙于项目没有时间更新自己的博客,时间就是海绵嘛硬挤挤就是有的,咂看标题" 流程图 ",编程界的一个不可或缺的技能,特别是在做复杂的逻辑的时候要处理好每一步的关 ... 
- 掌握算法&数据结构的正确方式
- HeRaNO's NOIP CSP Round Day 2 T2 PESTC
			对于我这种菜鸡来说还是挺有迷惑性的. 在考场发现答案问的是跟最值有关的数量,想到二分,结果果然具有单调性,考虑二份答案+验证 其实什么反转什么的,可以不用去管他,对于长度小于二分答案mid的道路,不去 ... 
- springboot WebMvcConfigurer配置静态资源和解决跨域
			前言 虽然现在都流行前后端分离部署,但有时候还是需要把前端文件跟后端文件一起打包发布,这就涉及到了springboot的静态资源访问的问题.不单只是静态资源打包,比如使用本地某个目录作为文件存储,也可 ... 
- MFC 解决绘图时闪烁问题的一点经验
			2015-05 由于作图过于复杂和频繁,所以时常出现闪烁的情况,一些防止闪烁的方法,如下: (1)将Invalidate()替换为InvalidateRect(). Invalidate()会导致整个 ... 
- vue中自定义指令
			//vue中自定义指令 //使用 Vue.directive(id, [definition]) 定义全局的指令 //参数1:指令的名称.注意,在定义的时候,指令的名称前面,不需要加 v-前缀; 但是 ... 
- js学习之存储
			一.Cookie和Session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上(一般以内存.数据库.文件形式). 2.session会在一定时间内保存在服务器上.当访 ... 
- 英语caement单词caement水泥
			水泥石  又称净浆硬化体.是指 硬化后的水泥浆体,称为水泥石,在英语里是cement有时写作caement [1] ,是由胶凝体.未水化的水泥颗粒内核.毛细孔等组 成的非均质体. 中文名:水泥石 外 ... 
