当前位置: 首页 > news >正文

网站设计网站建设网站制作百度知道个人中心

网站设计网站建设网站制作,百度知道个人中心,网页游戏网站快手,课程设计代做网站推荐参考教程:黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 软件界一直希望建立一种可重复利用的东西,C的面向对象和泛型编程思想,目的就是复用性的提升。 大多情况下,数据结构和算法都未能有一套标准,…

参考教程:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili

软件界一直希望建立一种可重复利用的东西,C++的面向对象泛型编程思想,目的就是复用性的提升。
大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作。
为了建立数据结构和算法的一套标准,诞生了STL。

一.STL基本概念

STL(Standard Template Library,标准模板库),通俗地来讲就是一套与数据结构和算法有关的标准库。
【1】vector,list,deque等库定义了数据结构模板类供我们使用。
【2】algorithm和numeric库定义了操作数据结构的相关算法
【3】functional库中定义了操作数据结构的内置仿函数

注:STL 几乎所有的代码都采用了模板类或者模板函数

二.STL六大组件

STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器

【1】容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。
STL容器就是将运用广泛的数据结构实现类。主要运用到面向对象和模板等知识。
常用的数据结构:数组, 链表,树, 栈, 队列, 集合, 映射表 等C++都提供了对应的实现类。
【2】算法:各种常用的算法,如sort、find、copy、for_each等
【3】迭代器:类似于指针,可以依序寻访某个容器所含的各个元素,算法的底层实现依赖于迭代器。因此也被称为容器和算法之间粘合剂,容器和算法之间通过迭代器进行无缝连接。
【4】仿函数:行为类似函数,可作为算法的某种策略。
一般常用的就是前面这四个。

【5】适配器:一种用来修饰容器或者仿函数或迭代器接口的东西。
【6】空间配置器:负责空间的配置与管理。

上面搞不懂没关系,用多了回来看就懂了。

三.STL常见容器

数组--vector        字符串--string        链表--list        双端数组--deque       
栈--stack        堆--queue        优先队列--priority_queue        
集合--set/multiset【set不允许容器有重复的元素,multiset允许容器中有重复的元素】       
键值对--map/multimap【map不允许容器有重复的元素,multimap允许容器中有重复的元素】

总结:
vector,list,deque等库定义了数据结构模板类供我们使用,由于这些类是其对应数据结构(或者说是抽象数据类型)的映射,所以这些类提供了该抽象类型的相关运算对应的方法供我们调用。
同时这些类底层实现也使用了适合其抽象类型的存储、组织数据的方式,从而使得这些类的相关运算非常高效。

四.STL常用算法

容器中只提供了抽象数据类型所具有的运算,但是很多时候我们还需要进行该容器运算之外的操作,比如对vector元素的排序我们可以使用sort算法,对队列之类的遍历我们可以使用for_each算法。
algorithm和numeric算法库提供了这类操作所对应的函数,这些函数一般传入迭代器(可以当成指针)作为参数。

<algorithm>是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等
<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数

常见算法函数:
for_each--遍历
sort--排序
set_intersection// 求两个容器的交集
set_union// 求两个容器的并集
set_difference// 求两个容器的差集

五.STL函数对象与仿函数

函数对象一般用在算法上。我们使用算法的时候有个问题,最常见的比如说排序,有时候我们要从小到大排序,有时候要从大到小排序。那我们怎么自定义规则呢?这时候就使用仿函数。

1.概念

重载函数调用操作符的类,其对象常称为函数对象
函数对象
使用重载的()时,行为类似函数调用,也叫仿函数

本质:函数对象(仿函数)是一个,不是一个函数

谓词:
返回bool类型的仿函数称为谓词,如果operator()接受一个参数,那么叫做一元谓词,如果operator()接受两个参数,那么叫做二元谓词

2.特点

(1)函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值
(2)函数对象超出普通函数的概念,函数对象可以有自己的状态
(3)函数对象可以作为参数传递

3.内建函数对象

概念:STL内建了一些函数对象在<functional>库中。里面定义了一些模板类,用以声明函数对象。

这些内建函数分为:
【1】算术仿函数--实现四则运算

【2】关系仿函数--实现关系对比

【3】逻辑仿函数--实现逻辑运算

http://www.yidumall.com/news/87693.html

相关文章:

  • 建设b2b平台网站自媒体平台
  • 做烘焙原材料在哪网站买长沙网站策划
  • 芜湖有哪些招聘网站知乎小说推广对接平台
  • 保定模板建站软件日本免费服务器ip地址
  • 平安保险网站整合营销的特点有哪些
  • 做网站 给图片加链接深圳aso优化
  • wordpress网站工具栏竞价什么意思
  • 做微商哪个网站比较好自己怎么免费做百度推广
  • 葫芦岛做网站电商网站建设开发
  • 衡水网站设计怎么做南昌seo方案
  • 个人网站设计的意义国内永久免费云服务器
  • 2003iis网站建设错误各大网站排名
  • 广州自适应网站建设免费建设网站平台
  • 100个最好的微信小程序微信小程序排名关键词优化
  • 网站建设市场规模一个新的app如何推广
  • 火山视窗软件开发平台北京百度seo点击器
  • 手机百度关键词排名 网站优化软件怎么下载百度
  • 福田建网站费用关于网站推广
  • 宁波网站制作哪家全面百度广告一级代理
  • 郯城县网站建设google play官网
  • 凤山网站seo宁波网站建设优化企业
  • 北京 响应式网站建设谷歌浏览器下载视频
  • 做网站和APP需要多少钱郑州网站优化seo
  • linux 做网站seo排名优化联系13火星软件
  • 杭州网站建设哪里好北京seo薪资
  • 做淘宝客要自己的网站如何创建自己的网站
  • 专业做网站建设设计化学sem是什么意思
  • 建大型网站公司代运营公司哪家好一些
  • 建设网站建设安全培训平台河北网站seo地址
  • 海外如何淘宝网站建设最知名的网站推广公司