1:STL概念

C++ STL(标准模板库)是一套功能强大的 C++ 模板类,它提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,(如:向量,链表,队列,栈。)

1.1 容器:

用来管理某一类对象的集合,C++提供了各种不同类型的容器。比如:Dequeue,List, Vector等集合容易。

vector<T> : 一种向量

list<T> : 一个双向链表容器,完成了标准C++数据结构链表的所有功能

queue<T> : 一种队列容器,完成了标准C++数据结构中 队列的所有功能

stack<T>: 一种栈容器,完成了标准C++数据结构中栈的所有功能

deque <T>:双端队列容器,完成了标准 C++ 数据结构中栈的所有功能

priority_queue <T>:一种按值排序的队列容器

set <T>:一种集合容器

multiset <T>:一种允许出现重复元素的集合容器

map <key, val>:一种关联数组容器

multimap <key, val>:一种允许出现重复 key 值的关联数组容器

1.1.1 :容器 Stack例子

 #include <iostream>
#include <string>
#include <cstring>
#include <thread>
#include<windows.h>
#include<chrono>
#include<ctime>
#include<mutex>
#include<stack>      int main() {stack<int> stack; // 定义堆栈对象for (int i = 0; i < 10; i++){stack.push(i);}cout << "开始弹出堆栈的元素";while (!stack.empty()){cout << stack.top()<< " ";stack.pop();}}打印结国: 开始弹出堆栈的元素9 8 7 6 5 4 3 2 1 0

1.1.2 :Stack实际应用 :

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格  比如: good good study day day up ---->pu yad yad yduts doog doog

1: 可以使用C++ 头文件  algorithm的 reverse函数2: 也可以切割字符串,通过 stack 来实现实现方式一: int main() {reverse(str.begin(), str.end());string reverse_str = str;cout << "反转的字符串为: " << reverse_str << endl;
}实现方式二:int main() {stack<char> str_stack;for (int i = 0; i < str.length(); i++){str_stack.push(str[i]);}while (str_stack.size() >0){cout << str_stack.top() << "";str_stack.pop();}}打印结果:反转的字符串为:pu yad yad yduts doog doog

1.1.3  :C++ STL stack容器源码解析

1.2 :案列代码

1.2 算法:

算法作用于容器,他们提供了执行各种操作的方式,包括对容器内容执行初始化,排序,搜索和转换等操作,这些算法在命名空间 std 的范围内定义,通过包含头文件 <algorithm> 来获得使用权

常见的算法包括

  • for_each();
  • find();
  • find_if();
  • count();
  • count_if();
  • replace();
  • replace_if();
  • copy();
  • unique_copy();
  • sort();
  • equal_range();
  • merge();

1.3 迭代器:

迭代器作用于遍历对象集合的元素,这些集合可能时容器,也可能是容器的子集。

2:STL

C++:STL教程从入门到精通相关推荐

  1. Android Studio2.0 教程从入门到精通Windows版

    系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Android Studi ...

  2. jquery validate 中文教程【入门到精通】

     jquery validate 中文教程[入门到精通] jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求 ...

  3. Android Studio教程从入门到精通

    最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Andro ...

  4. 视频教程-最新完整react教程从入门到精通包教包会-ReactJS

    最新完整react教程从入门到精通包教包会 10年以上开发经验,曾经是八维教育实训主任,千峰教育高级HTML5前端讲师,尚品中国创始人.现任程序思维创始人.曾和大厂.国企等大型企业合作开发项目.百余客 ...

  5. Android Studio2.0 教程从入门到精通MAC版 - 安装篇

    来自:http://www.open-open.com/lib/view/open1466430392743.html 前言 这个教程你将学会如何使用Android Studio2.0开发Androi ...

  6. 汇编语言程序教程:从入门到精通!

    汇编语言程序教程:从入门到精通! 作者:zzmdl0297140  来源:不祥  发布时间:2006-2-13 下午 10:54:59  发布人:941xz <script language=& ...

  7. fcpx教程从入门到精通「1」初步认识Final Cut Pro

    这次给大家带来fcpx教程从入门到精通的教程,是非常适合小白学习的fcpx教程.本期内容讲解初步认识Final Cut Pro. 新建资源库 我们第一次打开,是这样的界面,所以我们需要新建一个资源库, ...

  8. JavaScript教程——从入门到精通-石川-专题视频课程

    JavaScript教程--从入门到精通-55872人已学习 课程介绍         JavaScript教程--从入门到精通 课程收益     JavaScript教程--从入门到精通 讲师介绍 ...

  9. Linux教程从入门到精通

    为什么80%的码农都做不了架构师?>>>    Linux教程从入门到精通 Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linu ...

最新文章

  1. 微信链接里的图像如何得到更清晰
  2. Python_note7 文件和数据格式化+wordcloud库
  3. 皮一皮:选第一个选项的人是咋想的?
  4. 单片机检测stc没反应_STC 核心板 入门记 - 你好我叫郑某人
  5. 安装ubuntu时将boot目录单独挂载的意义
  6. 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)
  7. exi 虚拟服务器,图文教程:如何在ESXi主机上部署VMware Tools 10
  8. js编写简易返回顶部按钮
  9. Android之判断时间戳是不是今天
  10. 当html里语义化,HTML5语义化
  11. Apriori算法+python实现
  12. C语言-扫雷游戏程序设计
  13. @Qualifier注解 的理解和使用
  14. win10下安装deepin双系统教程
  15. 小程序 饿了么美团外卖券返利小程序源码+教程
  16. 【网络技术题库梳理6】无线局域网设备安装与调试
  17. 书写历史的甲骨文--ORACLE公司传奇
  18. qiankun框架: vue2 主应用访问子应用报错 [import-html-entry]:error occurs 或 died in status LOADING_SOURCE_CODE
  19. 【Git】使用手册02--在本地玩转代码
  20. .NET Petshop详解(五):petshop输出缓存设置 (转)

热门文章

  1. Unity录屏功能插件NatCorder使用简记
  2. 机原自检——第4章 平面机构的力分析
  3. android am stop 命令,如何使用am命令启动Android应用
  4. Ubuntu 提供桌面小工具 screenlet,桌面时钟,桌面贴条
  5. 华为手机软件测试员工资,【东莞华为工资】软件测试工程师待遇-看准网
  6. PROGRA~1的含义,grep -v grep
  7. 安卓版讯飞配音生成的配音的位置的解决方法
  8. keil5打开kil4工程不兼容 device无法选择芯片
  9. 链路跟踪Jaeger使用总结
  10. python生成漂亮桌面背景心灵鸡汤可每日学英语