STL常用算法总结 by StoneXie

include<algorithm>

1 sort(起始地址,结束地址+1,比较函数)
作用:对连续存储的元素从起始地址到结束地址从小到大排序
情况1:从大到小排序
定义比较函数例子:

bool cmp(int a,int b)
{
    return(a>b);
}

情况2:结构体数组排序
法1:重载运算符(定义在结构体内部)

struct Edge{
    int no,w;//按w从小到大,w相同时按no从小到大
    bool friend operator <(Edge a,Edge b)
    {
        if(a.w==b.w) return a.no<b.no;
        return a.w<b.w;
    }
};

法2:定义比较函数

struct Edge{
    int no,w;//按w从小到大,w相同时按no从小到大
};
bool cmp(Edge a,Edge b)
{
    if(a.w==b.w) return a.no<b.no;
    return a.w<b.w;
}

2 find(起始地址,结束地址+1,查找对象)
作用:返回查找对象的地址

3 reverse(起始地址,结束地址+1)
作用:反转从起始位置到结束地址的元素

原文地址:https://www.cnblogs.com/StoneXie/p/9472338.html

时间: 2024-10-29 13:28:42

STL常用算法总结 by StoneXie的相关文章

STL 常用算法

1.      STL 常用算法 l  for_each() 例1 //普通函数 voidFuncShowElemt2(int &t) { cout << t << " "; } vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); //通过回调函数  谁使用for_each 谁去填写回调函数的入口地址 for_each(v1.begin(), v1.end(),

[C++ STL] 常用算法总结

1 概述 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成.要使用 STL中的算法函数必须包含头文件<algorithm>,对于数值算法须包含<numeric>,<functional>中则定义了一些模板类,用来声明函数对象. 2 常用算法介绍 STL中算法大致分为四类: 非可变序列算法:指不直接修改其所操作的容器内容的算法. 可变序列算法:指可以修改它们所操作的容器内容的算法. 排序

C++ - STL常用算法-sort、find、count、等等【还有remove......暂时不写】

起始算法有很多,或者说太多,这里不写了,主要写一写在 vector deque stack queue set map 中出现过的算法,其他算法,以后在此补充! 这些算法使用时候,包含:#include<algorithm> 其余算法参考:https://blog.csdn.net/tick_tock97/article/details/71316372 在线手册:http://www.cplusplus.com/reference/algorithm 一.sort 没有返回值: 1 std:

c++ STL常用算法使用方法

#include <string> #include <vector> #include <functional> #include <iostream> using namespace std; void print(vector<int>& list, const string &des) { cout<<"after "<<des.c_str()<<", th

STL常用算法

1.copy()函数 int myints[]={10,20,30,40,50,60,70}; std::vector<int> myvector (7); std::copy ( myints, myints+7, myvector.begin() ); 将一个容器中的元素复制到另一个容器中 2.count()函数 int myints[] = {10,20,30,30,20,10,10,20};   // 8 elements int mycount = std::count (myint

STL中的常用算法

C++STL 常用算法,使用时包含#include <algorithm> 一.非变异算法 是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理.元素查找.子序列搜索.统计和匹配.非变异算法具有极为广泛的适用性,基本上可应用与各种容器. 1查找容器元素find 它用于查找等于某值的元素.它在迭代器区间[first,last)(闭开区间)上查找等于value值的元素,如果迭代器i所指的元素满足*i=value,则返回迭代器i:未找到满足条件的元素,返回last.函数原型:find( v1.

C++ STL 常用遍历算法

C++ STL 常用遍历算法 STL的容器算法迭代器的设计理念 1) STL的容器通过类模板技术,实现数据类型和容器模型的分离 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了统一性奠定了基 础 3) STL的算法,通过函数对象实现了自定义数据类型的算法运算:所以说:STL的算法也提 供了统一性.                核心思想:其实函数对象本质就是回调函数,回调函数的思想:就是任务的编写者和任务的调用者有效解耦合.函数指针做函数参数.4) 具体例子:transf

C++ STL 常用算术和生成算法

C++ STL 常用算术和生成算法 accumulate() accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值. #include<numeric> vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); vecIntA.push_back(5); vecIntA.push_back(7); vecIntA.push_back(9); int iSum = accumul

STL——配接器、常用算法使用

学习STL,必然会用到它里面的适配器和一些常用的算法.它们都是STL中的重要组成部分. 适配器 在STL里可以用一些容器适配得到适配器.例如其中的stack和queue就是由双端队列deque容器适配而来.其实适配器也是一种设计模式,该种模式是将一个类的接口转换成用户希望的另外一个接口.简单的说:就是需要的东西就在眼前,但却不能用或者使用不是很方便,而短时间又无法改造它,那我们就通过已存在的东西去适配它. STL中的适配器一共有三种: ①应用于容器的即容器适配器:比如stack和queue就是对