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的用法 分类: ...
随机推荐
- kafka Authentication using SASL/Kerberos
Authentication using SASL/Kerberos Prerequisites KerberosIf your organization is already using a Ker ...
- 2019 中至数据java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.中至数据等公司offer,岗位是Java后端开发,因为发展原因最终选择去了中至数据,入职一年时间了,也成为了面 ...
- a属性+DOM创建回流+动画运动+
超链接a的属性 href分析: < a href = " " > 点击刷新页面,相当于向后台发送了一次请求 < a href = " # &quo ...
- Myeclipse中JSP镶嵌的html报错
Window > perferences > General > Editors > File Associations > 在File types 中选择 *.jsp ...
- Computer Networking: A Top Down Approach
目录 Chapter 1: Computer Networks and the Internet 1. What is the Internet? 2. The Network Edge 3. The ...
- 【转载】如何删除Windows远程桌面保存的账号密码数据
在Windows系统中,无论是win7.win8还是win10系统,都可使用Windows系统自带的远程桌面连接工具来远程服务器,很多时候Windows远程桌面在连接一次后会自动保存连接的账号密码等信 ...
- CSS揭秘-半透明边框与多重边框
场景一: 实现半透明边框: 由于CSS样式的默认行为,背景色的渲染范围是 content+padding+border. 半透明边框被主调色影响, 实现的效果为 解决方案: 使用backgroun ...
- vue条形码生成插件vue-barcode
更详细的请查阅官方文档 https://github.com/lindell/vue-barcode vue-barcode是JsBarcode的一个简单包装.所以在使用时的配置属性需要在JsBarc ...
- 安全SECUERITY单词SECUERITY证券
中文名:证券业 外文名:secuerity 含义:指从事证券发行和交易服务 性质:证券市场的基本组成要素 组成:证券交易所.证券公司 目录 1 证券评级 2 证券定义 ? 涵义 ? 内容 ? 分类 ? ...
- Java 8中的Base64编码和解码
转自:https://juejin.im/post/5c99b2976fb9a070e76376cc Java 8会因为将lambdas,流,新的日期/时间模型和Nashorn JavaScript引 ...