[C++]Algorithm中的函数简介
2017-03-19 22:12
381 查看
Algorithm
algorithm意为”算法”,是C++的标准模版库(STL)中最重要的头文件之一,提供了大量基于迭代器的非成员模版函数。内容
本文简单介绍find,swap,sort,for_each这几个函数的功能及使用方法。函数原型及用例
给定一个vector容器:vector<int> nums={8,7,5,4,2,9,6,1,3,0};
find:
find(nums.begin(),nums.end(),4);
find the number 4 ,return the iterator of the number。
返回第一次出现4的位置的迭代器(可以理解为指针,但不同。)
想要得到4所在位置的下标,可以写作
find(nums.begin(),nums.end(),4)-nums.begin();
注:若未找到则返回nums.end()
swap:
swap(nums[0],nums[2]);
交换nums中下标为0和下标为2的元素。
sort:
sort(nums.begin(),nums.end(),[](int n1,int n2){return n1<n2;});
对nums进行从小到大排序
排序规则参照第三个参数,使其nums中所有元素满足函数return true;
即里面任意两个元素n1,n2且n1下标小于n2,满足n1
sort(nums.begin(),nums.end(),[](int n1,int n2){return n1>n2;});
注:前两个参数为需要排序的范围。排序法为快速排序。如需要稳定排序则可以使用stable_sort代替即可。
for_each:
for_each(nums.begin(),nums.end(),[](int n){cout<<n<<" ";});
此函数可以对参数1到参数2范围内的元素执行参数3函数内容。
以上语句可以把nums内所有元素执行cout并输出一个空格。
用例
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> nums={8,7,5,4,2,9,6,1,3,0}; cout<<find(nums.begin(),nums.end(),4)-nums.begin()<<endl;//find the number 4 return the iterator of the number swap(nums[0],nums[2]); for_each(nums.begin(),nums.end(),[](int n){cout<<n<<" ";}); cout<<endl; sort(nums.begin(),nums.end(),[](int n1,int n2){return n1>n2;}); for_each(nums.begin(),nums.end(),[](int n){cout<<n<<" ";}); return 0; }
运行结果:
相关文章推荐
- algorithm 函数表 C++
- C++语法基础--泛型算法(generic algorithm)--插入迭代器back_inserter(),front_insertor(),inserter()以及next()函数简介
- C++学习笔记之函数重载简介
- C++:STL常用函数模块总结(算法algorithm)
- C++中的虚函数简介(上)
- C++ boost 组件简介:函数对象及高级编程
- C++中sort与qsort函数简介
- C++中getline()函数简介
- Kinect Fusion Explorer D2D C++ Sample中函数简介
- c++几个概念简介(结构体模版与函数对象)
- C++ STL 函数对象简介
- C++之函数简介
- c++函数简介
- C++中与输入相关的istream类成员函数简介
- C/C++:数学函数ceil/floor简介
- C/C++与Matlab混合编程实用函数简介
- C++库常用函数一览(<string><cctype><algorithm><cmath><cstdlib><iomanip><numeric>)
- C++ vector的用法及algorithm.h中常用函数
- c++ 读入字符的函数简介
- C++中getline()函数简介