STL 算法部分 原创入门教程,要详细资料请百度

STL算法部分

库为  Algorithm 算法库  Functional函数式编程       Numeric  基础性的数值算法

一一:find 查找类有13个函数,详情请百度。

使用方法,s.find(“a”);s就是一个数据类型,比方说set 集合,就是在一个集合中找到第一个和a一样的 字符,然后返回他的迭代器,

迭代器可以大概理解为指针。

用法是  queue<int> : :  iterator it;

因为大多数函数返回的都是it 类型的指针,所有必须认真掌握。

二:排序和通用算法

Sort 排序类有 14个函数。详情请百度。

Sort (a,a+n)  这样直接在这个范围内正排。

或者自己写cmp(比较)函数

Sort(a,a+n,cmp);

关于cmp怎么写,这个比较麻烦,

Reverse 对指定范围内元素重新反序排序,。

1对一维数组排序

超简单写法

Bool cmp(int a,int b)

{return a>b;}降序排序, 后面是完整写法

如果是qsort的话得这样写

qsort(a,n,sizeof(a[0]),cmp);

int cmp(const void *a,const void *b)//                const 不可改变的 a所指向的值 void 是多态。

{  return *(int *)a-*(int *)b; }   //  由小到大   (int *)是强制类型转换为int的指针类型,
int cmp(const void *a,const void *b) //          前面的* 好取指针的值来减虽然麻烦,

{  return *(int *)b-*(int *)a;   } //
 由大到小         不过是为了通用性而设计的,

.特例排序double型(只能这样来写):

Double in 【1000】;
int cmp(const void *a,const void *b)
{
    return (*(double*)a)>(*(double*)b)  ?  1:-1;

//返回值的问题,cmp是int型的,避免double
返 回小数而被丢失,
}

三:删除和替换类型算法   十五个。

Copy  复制序列

Remove
删除指定范围内,等于指定元素的元素。

Replace
替换 指定范围替换元素

Swap  交换,存储在两个对象的值。

Unique  清除指定范围内重复元素。

四:排列组合算法 2个

Next_permutatiom
       将当前范围重新排序为全排列,获得的是下一个序列

Prev­­p_ermutatiom  同上,获得的是上一个序列
next_permutation(a,a+m)   全排列的下一个

样例是

#include<iostream>

#include<string>

#include<algorithm>

using
namespace std ;

int
main()

{

int n,a[9]={1,2,3,4,5,6,7,8,9};

cin >> n;

while(n--)

{  
int m;

cin >> m;//获取对多少个数全排列

do

{

for(int i = 0; i < m; i++ )

cout << a[i];  //输出一行

cout<<endl;

}

while(next_permutation(a,a+m));获取下一个全排列的序列。

}

return 0;

}

五:算术算法4个

Accumulate     对迭代器标示的序列段 算和。

Adjacent_difference   创建新的序列 ,新序列中每一个新值代表当前元素和上一个元素的差。

这个知道就好,没必要深入学习。

六 生成和异变算法,6个

这个我也不懂,和填充元素有关系。

七,关系算法,8个(比较重要)

Max min 这个返回大的和小的。

Max_element  min_element  返回序列中最大和最小的。返回值是迭代器。

Equal 判断在标志范围内是否相等,返回值是true

Includes 判断第一个指定范围内的元素是否都被第二个范围包括

Mismatch 并行比较两个序列指出第一个不匹配的位置。返回值是一对迭代器。

八:集合算法4个

Set_union 构造一个有序序列,包含两个序列中所有的不重复元素。

Set_intersection构造一个有序序列,找出相交的集合部分元素

Set_difference   构造一个有序序列,找出第一个存在,第二个不存在的。

Set_symmetric_difference  构造一个有序序列, 去两个序列的对称差集,就是并集-交集

九:堆算法4个

不懂。自己查查看吧。

时间: 2024-10-24 20:48:34

STL 算法部分 原创入门教程,要详细资料请百度的相关文章

STL 数据结构部分原创入门教程,要详细资料请百度

数据结构部分 数据结构,按理而言是要计科的孩纸学一年,物联网的孩纸学半年的.不过,咱们也不需要那么细致的学习,其实太多的知识是能用就行的,现在让我们用一节课来ko基础的数据结构. 数据结构是是什么呢,简单的理解就是数据如何的存储结构.我们之前学习过链表,那么实际上大多数的数据结构都是由链表来加以改装来实现, 首先是list 双向链表,这个熟悉吧! 一定要注意其实容器都是类似的,学好一个后面的就刷刷会了. 头文件是 #include <list> 定义是  list <int> l1

A*算法详尽的入门教程

A*算法详尽的入门教程 一: 为什么我们需要A*算法 求最短路径或者最小代价的算法有很多.其本质就是图的搜索策略.图的直接搜索方法有很多种,比较典型的是广度优先搜索.深度优先搜索.所谓的广度优先搜索是每到达一个节点就优先遍历该节点的所有相邻节点.而对应的深度优先搜索是指一直延伸到从未达到过的节点.基于以上两种基本思想的最短路径算法有Dijkstra算法和Floyd算法.当搜索完毕也遍历了整张图,其时间开销是很大的,尤其是在图非常大的时候这种时间复杂度是不能接受的.上述算法之所以时间开销大是因为在

正则表达式30分钟入门教程 都是复制的

正则表达式30分钟入门教程 来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了如果有问题,再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程“一步步来”.请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂.当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门. 事实是,我身边有个才接触电脑,对操作都不是

正则表达式30分钟入门教程(转)

来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了如果有问题,再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程“一步步来”.请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂.当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门. 事实是,我身边有个才接触电脑,对操作都不是很熟练的人通过自己学习这篇教

转:正则表达式30分钟入门教程

来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了如果有问题,再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程“一步步来”.请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂.当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门. 事实是,我身边有个才接触电脑,对操作都不是很熟练的人通过自己学习这篇教

【教程】原创:历上最简单的游戏编程入门教程(基于cocos2d-js)

前言: 大家好.我是一个游戏开发者.曾就职于cocos2d-x这个手机游戏引擎的开发的公司. 在这边我准备了一个最简单的教程,想告诉大家制作一个游戏有多简单. 回忆起当年刚刚步入游戏这个行业,我也抱着非常多的疑问. 所以如果大家对游戏有兴趣的朋友,可以在下面留言. 这个教程我会讲的非常通俗易懂.争取几句话之内就让你看到一个效果. 另外教程里面有丰富的图文讲解.我保证你学完之后掌握了做游戏的真髓. 你完全可以马上开始做自己的游戏.并且能够让你的游戏在网页上,ios,android 还有pc平台上跑

[技术] OIer的STL入门教程

注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档. 原始资料源于各大C++参考信息网站/C++标准文档和Wikipedia. 1.概述 首先, 什么是STL? STL, 即标准模板库, 全称Standard Template Library , 主要包含4个组件, 即算法, 函数, 容器, 迭代器. 这里的函数似乎主要指函数式编程(FP)中的函数

Android基础入门教程——8.3.4 Paint API之—— Xfermode与PorterDuff详解(一)

Android基础入门教程--8.3.4 Paint API之-- Xfermode与PorterDuff详解(一) 标签(空格分隔): Android基础入门教程 本节引言: 不知道标题这两个玩意你熟不熟悉啦,如果自己实现过圆角或者圆形图片,相信对这两个名词 并不模式,一时半伙没想起来?没关系,下面这个图你可曾见过? PS:网上都说在:\samples\android-XX\legacy\ApiDemos\src\com\example\android\apis\graphics 下能找到这个

Android基础入门教程——8.1.1 Android中的13种Drawable小结 Part 1

Android基础入门教程--8.1.1 Android中的13种Drawable小结 Part 1 标签(空格分隔): Android基础入门教程 本节引言: 从本节开始我们来学习Android中绘图与动画中的一些基础知识,为我们进阶部分的自定义 打下基础!而第一节我们来扣下Android中的Drawable!Android中给我们提供了多达13种的 Drawable,本节我们就来一个个撸一遍! Drawable资源使用注意事项 Drawable分为两种: 一种是我们普通的图片资源,在Andr