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

河北网络公司网站建设中国关键词网站

河北网络公司网站建设,中国关键词网站,政务网站的建设时期的概述,广州优化网站排名【C】STL初识 文章目录 【C】STL初识前言一、STL基本概念二、STL六大组件简介三、STL三大组件四、初识STL总结 前言 本篇文章将讲到STL基本概念#xff0c;STL六大组件简介#xff0c;STL三大组件#xff0c;初识STL。 一、STL基本概念 STL(Standard Template Library,标准…【C】STL初识 文章目录 【C】STL初识前言一、STL基本概念二、STL六大组件简介三、STL三大组件四、初识STL总结 前言 本篇文章将讲到STL基本概念STL六大组件简介STL三大组件初识STL。 一、STL基本概念 STL(Standard Template Library,标准模板库) STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator),容器和算法之间通过迭代器进行无缝连接。STL 几乎所有的代码都采用了模板类或者模板函数这相比传统的由函数和类组成的库来说提供了更好的代码重用机会。 二、STL六大组件简介 STL提供了六大组件彼此之间可以组合套用这六大组件分别是:容器、算法、迭代器、仿函数、适配器配接器、空间配置器。 容器各种数据结构如vector、list、deque、set、map等,用来存放数据从实现角度来看STL容器是一种class template。算法各种常用的算法如sort、find、copy、for_each。从实现的角度来看STL算法是一种function tempalte.迭代器扮演了容器与算法之间的胶合剂共有五种类型从实现角度来看迭代器是一种将operator* , operator- , operator,operator–等指针相关操作予以重载的class template. 所有STL容器都附带有自己专属的迭代器只有容器的设计者才知道如何遍历自己的元素。原生指针(native pointer)也是一种迭代器。仿函数行为类似函数可作为算法的某种策略。从实现角度来看仿函数是一种重载了operator()的class 或者class template适配器一种用来修饰容器或者仿函数或迭代器接口的东西。空间配置器负责空间的配置与管理。从实现角度看配置器是一个实现了动态空间配置、空间管理、空间释放的class tempalte. STL六大组件的交互关系容器通过空间配置器取得数据存储空间算法通过迭代器存储容器中的内容仿函数可以协助算法完成不同的策略的变化适配器可以修饰仿函数。 STL优点STL 具有高可重用性高性能高移植性跨平台的优点。 三、STL三大组件 容器 常用的数据结构数组(array),链表(list),tree(树)栈(stack),队列(queue),集合(set),映射表(map),根据数据在容器中的排列特性这些数据分为序列式容器和关联式容器两种 序列式容器强调值的排序序列式容器中的每个元素均有固定的位置除非用删除或插入的操作改变这个位置。Vector容器、Deque容器、List容器等。 关联式容器是非线性的树结构更准确的说是二叉树结构。各元素之间没有严格的物理上的顺序关系也就是说元素在容器中并没有保存元素置入容器时的逻辑顺序。关联式容器另一个显著特点是在值中选择一个值作为关键字key这个关键字对值起到索引的作用方便查找。Set/multiset容器 Map/multimap容器 算法 算法分为:质变算法和非质变算法。 质变算法是指运算过程中会更改区间内的元素的内容。例如拷贝替换删除等等 非质变算法是指运算过程中不会更改区间内的元素内容例如查找、计数、遍历、寻找极值等等 迭代器 四、初识STL vector容器 vectorv vector::iterator itBegin v.begin(); //v.begin() 起始迭代器指向容器中第一个数据 vector::iterator itEnd v.end(); //v.end()结束迭代器指向的是容器中最后一个元素的下一个位置 利用算法遍历容器 for_each(v.begin(),v.end() , myPrint ) 头文件 algorithm 容器中存放自定义数据类型 容器中存放自定义数据类型指针 容器嵌套容器 #define _CRT_SECURE_NO_WARNINGS 1 #includeiostream using namespace std; #includevector #includealgorithm #includestring//原生指针也是迭代器 void test01() {int arr[5] { 1, 2,3 ,4,5 };int* p arr;for (int i 0; i 5; i){//cout arr[i] endl;cout *(p) endl;} }void myPrint(int val) {cout val endl; }void test02() {vectorint v; //创建一个victor容器容器中存放的元素是int 类型//插入元素v.push_back(10);v.push_back(20);v.push_back(30);v.push_back(40);//遍历元素vectorint::iterator itBegin v.begin(); //v.begin() 起始迭代器指向容器中第一个数据vectorint::iterator itEnd v.end(); //v.end()结束迭代器指向的是容器中最后一个元素的下一个位置//第一种遍历//while (itBegin ! itEnd)//{// cout *itBegin endl;// itBegin;//}//第二种遍历//for (vectorint::iterator it v.begin(); it ! v.end(); it)//{// cout *it endl;//}//第三种遍历for_each(itBegin, itEnd, myPrint);for_each(v.begin(), v.end(), myPrint); }//自定义数据类型 class Person { public:Person(string name, int age){this-m_name name;this-m_age age;}string m_name;int m_age; };void test03() {vectorPerson v;Person p1(aaa, 10);Person p2(bbb, 20);Person p3(ccc, 30);Person p4(ddd, 40);v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);//每个容器都有自己的专属迭代器for (vectorPerson::iterator it v.begin(); it ! v.end(); it){cout 姓名 (*it).m_name 年龄 (*it).m_age endl;cout 姓名 it-m_name 年龄 it-m_age endl;}}//存放自定义数据类型指针 void test04() {vectorPerson* v;Person p1(aaa, 10);Person p2(bbb, 20);Person p3(ccc, 30);Person p4(ddd, 40);v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);for (vectorPerson*::iterator it v.begin(); it ! v.end(); it){// * it ---- Person*cout 姓名: (*it)-m_name 年龄: (*it)-m_age endl;} }//容器嵌套容器 void test05() {vectorvectorintv;vectorintv1;vectorintv2;vectorintv3;for (int i 0; i 5; i){v1.push_back(i);v2.push_back(i 10);v3.push_back(i 100);}v.push_back(v1);v.push_back(v2);v.push_back(v3);for (vectorvectorint::iterator it v.begin(); it ! v.end(); it){for (vectorint::iterator vit (*it).begin(); vit ! (*it).end(); vit){cout *vit ;}cout endl;}}int main() {//test01();//test02();//test03();//test04();test05();system(pause);return EXIT_SUCCESS; }总结 STL六大组件 容器、算法、迭代器、仿函数、适配器、空间配置器 STL优点 内建在C编译器中不需要安装额外内容 不需要了解具体实现内容只要熟练运用即可 高复用可移植高性能 容器划分 序列式容器 关联式容器 有个key起到索引作用 算法 质变算法 非质变算法 STL初识 vector容器 vectorv vector::iterator itBegin v.begin(); //v.begin() 起始迭代器指向容器中第一个数据 vector::iterator itEnd v.end(); //v.end()结束迭代器指向的是容器中最后一个元素的下一个位置 利用算法遍历容器 for_each(v.begin(),v.end() , myPrint ) 头文件 algorithm 容器中存放自定义数据类型 容器中存放自定义数据类型指针 容器嵌套容器
http://www.hkea.cn/news/14327697/

相关文章:

  • 石家庄网站编辑深圳建网站信科
  • 链交换反应做网络优化的公司排名
  • 营销软件网站网站怎么做投票
  • 还有哪些免费的网站可以做H5中国建设银行ie下载网站
  • 深圳市住宅和建设网站汕头建设银行协华支行
  • 珠海建设集团网站首页怎么做服务器网站吗
  • 手机网站 生成深圳做义工的网站
  • 有哪些专做自然风景图片的网站深圳网络公司老板
  • 十大网站多与pR值高的网站做链接
  • 网站做的比较好的贸易公司怎么样推广自己的网址
  • 视觉网站建设公司简历模板范文填写
  • 如何用手机创建网站西安网站建设哪家
  • 网店代运营的套路公司网站优化要怎么做
  • 手机网站建设策划方案事件营销的方法
  • 芜湖效能建设网站在线编程的网站
  • 龙岗区网站建设博客网站建设
  • 做任务的设计网站付费资料网站开发
  • 东莞门户网站建设报价表网站功能建设描述书
  • 保定制作公司网站的公司河南郑州网站设计公司
  • 昆明云南微网站搭建哪家好湖州房产网站建设
  • 如何建设公司网站网站服务器空间价格
  • 介绍一个电影的网站模板下载怎么制作属于自己的网站
  • 南山做网站推广乐云seo青岛房价
  • 网站服务设计国外ps素材网站
  • 西安医院网站建设wordpress 文章 模型
  • 网站制作公司 北京银川做网站多少钱
  • 务川县建设局官方网站美业网站建设
  • 用html做的游戏网站动漫做h免费网站有哪些
  • zencart网站备份企业网站建设的目的和意义
  • 服务器网站环境国外的wordpress主题公园