[C++]Algorithm中的函数简介

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;
}

运行结果:
运行结果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值