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

填写网站备案信息网站建设工作建议

填写网站备案信息,网站建设工作建议,哈尔滨网站建设哪家好而且价格不贵,unity游戏制作软件STL 定义STL六大组件容器——置物之所也STL容器就是将运用最广泛的一些数据结构实现出来常用的数据结构序列式容器关联式容器 算法——问题之解法也质变算法非质变算法 迭代器——容器和算法之间粘合剂迭代器种类各种迭代器支持的常见运算操作 STL示例容器 —— vector迭代器vector迭代器 vectorint::iterator算法—— for_each示例常用的算法函数排序算法查找算法合并算法 定义 STL是C中的一个重要组成部分。它的设计理念是提供一套通用、高效、可重用的数据结构和算法并且尽量通过模板来实现泛化以便满足各种不同的需求。 STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator) 容器是用来存储数据的对象可以看作是某种特定数据结构的封装。STL提供了多种不同类型的容器如vector、list、map等每种容器都有自己的特点和适用场景。 算法是对容器中数据进行操作的函数比如查找、排序、删除等。STL提供了大量的算法包括查找、排序、统计、遍历等等可以方便地对容器中的元素进行各种处理。 迭代器是用于遍历容器中元素的对象可以看作是一个指针。通过迭代器可以按照线性顺序访问容器中的每个元素从而实现对容器的操作。 STL的关键之处在于容器和算法之间通过迭代器进行无缝连接。算法并不依赖于具体的容器类型而是通过迭代器来遍历和操作容器中的元素。这种设计使得算法可以复用于多种不同类型的容器提高了代码的可重用性和灵活性。 STL的很多代码都采用了模板类或者模板函数的形式这是为了实现泛化编程即可以对不同的数据类型都适用。通过使用模板STL可以根据不同的参数类型生成相应的代码从而实现通用性和灵活性。 STL六大组件 STL大体分为六大组件分别是:容器、算法、迭代器、仿函数、适配器配接器、空间配置器 容器各种数据结构如vector、list、deque、set、map等,用来存放数据。算法各种常用的算法如sort、find、copy、for_each等迭代器扮演了容器与算法之间的胶合剂。仿函数行为类似函数可作为算法的某种策略。适配器一种用来修饰容器或者仿函数或迭代器接口的东西。空间配置器负责空间的配置与管理。 容器——置物之所也 STL容器就是将运用最广泛的一些数据结构实现出来 容器Containers用于存储和组织数据并提供了对数据的访问和操作。常见的容器有vector、list、deque、set、map等。 常用的数据结构 数组, 链表,树, 栈, 队列, 集合, 映射表 等 这些容器分为序列式容器和关联式容器两种 序列式容器 强调值的排序序列式容器中的每个元素均有固定的位置 关联式容器 二叉树结构各元素之间没有严格的物理上的顺序关系 算法——问题之解法也 有限的步骤解决逻辑或数学上的问题这一门学科我们叫做算法(Algorithms) 算法是对容器中的数据进行处理和操作的函数模板。STL提供了一系列算法涵盖了各种常见的操作如排序、查找、合并、复制等。 算法分为:质变算法和非质变算法。 质变算法 是指运算过程中会更改区间内的元素的内容。例如拷贝替换删除等等 非质变算法 是指运算过程中不会更改区间内的元素内容例如查找、计数、遍历、寻找极值等等 迭代器——容器和算法之间粘合剂 迭代器Iterators用于遍历容器中的元素。它提供了一种统一的访问容器中元素的方式使得算法能够独立于容器而工作能够依序寻访某个容器所含的各个元素而又无需暴露该容器的内部表示方式。 每个容器都有自己专属的迭代器 迭代器使用非常类似于指针初学阶段我们可以先理解迭代器为指针 常用的容器中迭代器种类为双向迭代器和随机访问迭代器 迭代器种类 种类功能支持运算输入迭代器对数据的只读访问只读支持、、输出迭代器对数据的只写访问只写支持前向迭代器读写操作并能向前推进迭代器读写支持、、双向迭代器读写操作并能向前和向后操作读写支持、–随机访问迭代器读写操作可以以跳跃的方式访问任意数据功能最强的迭代器读写支持、–、[n]、-n、、、、 输入迭代器Input Iterator这种迭代器只能用于读取数据它允许以顺序方式逐个访问元素但不支持对元素进行写操作。例如std::istream_iterator 是一个输入迭代器用于从输入流中读取数据。输出迭代器Output Iterator这种迭代器只能用于写入数据它允许以顺序方式逐个写入元素但不支持读取元素。例如std::ostream_iterator 是一个输出迭代器用于向输出流中写入数据。前向迭代器Forward Iterator这种迭代器支持输入和输出操作可以在集合中前后移动并对元素进行读写操作但只能遍历集合一次。例如std::forward_list 和 std::unordered_set 的迭代器就属于前向迭代器。双向迭代器Bidirectional Iterator这种迭代器比前向迭代器更强大除了支持前向和后向移动外还可以反向遍历集合。例如std::list 和 std::set 的迭代器就属于双向迭代器。随机访问迭代器Random Access Iterator这种迭代器提供了最强大的功能除了支持前向、后向和随机移动外还可以通过迭代器进行算术计算实现跳跃式访问集合中的元素。例如std::vector 和 std::array 的迭代器就属于随机访问迭代器。 不同类型的迭代器支持的运算操作也略有不同。 各种迭代器支持的常见运算操作 输入迭代器Input Iterator支持以下操作 *it获取迭代器指向的元素值。it 或 it将迭代器向前移动到下一个位置。it it2 和 it ! it2比较两个迭代器是否相等或不相等。 输出迭代器Output Iterator支持以下操作 *it value将值赋给迭代器指向的位置。it 或 it将迭代器向前移动到下一个位置。 前向迭代器Forward Iterator除了支持输入迭代器和输出迭代器的所有操作之外还支持以下操作 it1 it2 和 it1 ! it2比较两个迭代器是否相等或不相等。 双向迭代器Bidirectional Iterator除了支持前向迭代器的所有操作之外还支持以下操作 it-- 或 --it将迭代器向后移动到前一个位置。 随机访问迭代器Random Access Iterator除了支持双向迭代器的所有操作之外还支持以下操作 it n 和 it - n将迭代器向前或向后移动 n 个位置。it n 和 it - n返回从迭代器开始向前或向后移动 n 个位置后的迭代器。it1 - it2计算两个迭代器之间的距离。it[n]返回迭代器指向的位置加上 n 的元素。 STL示例 容器 —— vector 创建vector容器对象并且通过模板参数指定容器中存放的数据的类型 vectorint v;迭代器 vectorint::iterator 每一个容器都有自己的迭代器迭代器是用来遍历容器中的元素 ​ v.begin() 返回迭代器这个迭代器指向容器中第一个数据 ​ v.end() 返回迭代器这个迭代器指向容器元素的最后一个元素的下一个位置 ​ vectorint::iterator 拿到vector这种容器的迭代器类型 ​ vectorint::iterator it 创建迭代器对象 算法—— for_each 使用STL提供标准遍历算法 头文件 algorith for_each 是C算法库中的一个函数用于对容器或范围内的元素逐个进行某种操作函数。 函数原型如下 templateclass InputIt, class UnaryFunction UnaryFunction for_each(InputIt first, InputIt last, UnaryFunction f);参数说明 first 和 last表示一个范围指定需要进行操作的元素的起始和结束位置。f是一个一元函数对象unary function用于对元素进行操作。该函数对象接受一个元素作为参数并返回结果可选。 for_each 函数会遍历指定范围内的每一个元素将每个元素传递给函数对象 f 进行处理。 示例 #include vector #include algorithmvoid MyPrint(int val) {cout val endl; }void test01() {//创建vector容器对象并且通过模板参数指定容器中存放的数据的类型vectorint v;//向容器中放数据v.push_back(10);v.push_back(20);v.push_back(30);v.push_back(40);//每一个容器都有自己的迭代器迭代器是用来遍历容器中的元素//v.begin()返回迭代器这个迭代器指向容器中第一个数据//v.end()返回迭代器这个迭代器指向容器元素的最后一个元素的下一个位置//vectorint::iterator 拿到vectorint这种容器的迭代器类型vectorint::iterator pBegin v.begin();vectorint::iterator pEnd v.end();//第一种遍历方式while (pBegin ! pEnd) {cout *pBegin endl;pBegin;}//第二种遍历方式for (vectorint::iterator it v.begin(); it ! v.end(); it) {cout *it endl;}cout endl;//第三种遍历方式//使用STL提供标准遍历算法 头文件 algorithmfor_each(v.begin(), v.end(), MyPrint); }int main() {test01();system(pause);return 0; }常用的算法函数 #include algorithm 是 C 中用于包含算法库的头文件。该头文件中包含了许多有用的算法函数可以对容器、数组和其他数据结构进行各种操作例如排序、查找、合并等。 使用 #include algorithm 可以使程序能够使用算法库中的函数。你可以根据需要选择适当的算法函数来处理数据提高编程效率和代码可读性。 排序算法 std::sort(first, last)对指定范围内的元素进行升序排序。std::stable_sort(first, last)对指定范围内的元素进行稳定的升序排序。 查找算法 std::find(first, last, value)在指定范围内查找第一个与给定值相等的元素并返回其迭代器。std::binary_search(first, last, value)在已排序的范围内使用二分查找算法查找指定值返回是否找到。 合并算法 std::merge(first1, last1, first2, last2, result)将两个已排序的范围归并成一个有序范围。
http://www.sadfv.cn/news/8560/

相关文章:

  • 郑州网站建设方案服务藁城网站建设
  • 做自己的网站能赚钱吗多少钱立案
  • 网站推广营销收费chrome手机版
  • 企业建一个网站互联网营销与推广
  • 做网站如何连数据库网站开发都用什么软件
  • 高端大气上档次的网站电商进货渠道
  • word网站的链接怎么做的网站建设合同有哪些
  • 网站制作大概费用网站网站开发的
  • phpcms 网站打不开哈尔滨自助板建站
  • 台州网站制作服务做直播网站一定要idc吗
  • 塔城建设局网站nuxt做多页面网站
  • 商城网站建设报价邳州城乡建设局网站
  • 做全屏式网站尺寸是多大重庆最新宣传片
  • 做网站客户总是要退款装修风格效果图小户型
  • 佛山网站快速优化排名wordpress 免密码
  • 有了域名后怎么建设网站金坛住房和城乡建设局网站
  • 乐清住房和城乡建设部网站官网苏州注册公司网上申请入口
  • 网站做熊掌号码昆山市建设工程交易中心网站
  • 做医药商城网站的公司网站建设的目标是
  • 临湘网站建设网站导航包括
  • 淘宝联盟网站推广怎么做wordpress 中文 模板下载
  • 什么是网站可信认证平陆网站建设
  • 音乐网站开发的项目背景wordpress 4.9.6 漏洞
  • 常州酒店网站建设百度云搜索引擎入口盘多多
  • 做网站程序的步骤网站建设的实训心得
  • 图片网站模板下载深圳手工外发加工网
  • 建设网站如ui培训设计培训班
  • 网站上网络营销选择电商网站建设
  • 白云商城型网站建设备案的网站可以改域名吗
  • 中国建设银行的网站用户名是什么意思影城网站设计