STL

一、vector动态数组

1 包含头函数 #include<vector>

2 函数的声明: vector<int> v;

       vector<int> v[maxn];

       vector<int> v(100,1); //100个1

3 操作常用:

  v.push_back(x); 在最后添加一个元素x

  v.pop_back(); 删去最后一个元素

  v.begin(); 返回第一个元素的指针

  v.end();返回最后一个元素的指针

  v.at(n);返回n位置的元素

  v.clear();清空数组

  v.size();返回数组长度

  v.front();返回第一个元素

  v.back();返回最后一个元素

  v.empty();如果数组为空返回true,否则返回false

  v.resize(n);重新定义数组大小为n

二、set 元素

1、包含头函数: #include<set>

2、函数声明: set<int> s;   (string等)

3、set是集合,不会包含重复的元素。因此可以用来查找统计不重复的元素

4、操作常用:

  s.insert(x);插入元素x

  s.erase(x);删除元素x(如果x存在)

  if (s.find(x)!=s.end())  判断元素是否属于集合(因为如果不属于返回值为s.end())

  s.size();返回集合长度

  s.empty();如果集合为空,则返回true

  s.clear();清空集合

  s.begin();指向第一个元素位置

  s.end();指向最后一个元素后面

  set<int>::iterator it; 定义一个指针

  s.count(i); i 在集合中,返回 1

三、map 映射

1、包含头函数: #include<map>

2、 函数声明: map<int,string> m1;

       map<string,int> m2;

3 map是将数据进行一对一的对应,使其更好描述。

4 操作常用:

  (1)读入数据:m1[1]="the_first_one";

  (2)数据大小:len=m.size();

  (3) 数据遍历:for(int i=1;i<=len;i++) cout<<m1[i];

  (4)数据查找:m.count() ;不能返回位置,只返回true、false;

         m.find(); 返回位置指针,不在中就返回m.end(); 

  (5)数据清空:m.clear();

 

四、queue 队列

1、包含头函数 #include<queue>

2、声明: queue<int> q;

3、queue在队列的使用中,较自定义的数组更方便,所以常使用在广搜中。

4、操作常用:

  q.empty();如果队列为空则返回true

  q.front();返回队列第一个值

  q.pop();删除队列最后一个

  q.push(x);添加x到队列最后

  q.size();返回队列长度

STL 自学的更多相关文章

  1. C++ STL自学总结,仅供参考

    本文内容,为博主在网上看到资料总结整合而来 一.stl格式简介 .stl文件是在计算机图形应用系统,来表示封闭的面或者体,用来表示三角形网格的一种文件格式.为STereo Lithography的缩写 ...

  2. 跟我学STL系列(1)——STL入门介绍

    一.引言 最近这段时间一直都在自学C++,所以这里总结下自己这段时间的学习过程,通过这种方式来巩固自己学到的内容和以备后面复习所用,另外,希望这系列文章可以帮助到其他自学C++的朋友们. 由于本人之前 ...

  3. PJ可能会考的模拟与枚举-自学教程

    PJ可能会考的模拟与枚举-自学教程 文/Pleiades_Antares 之前学校里看一个小可爱复习的时候偷偷听来着XD 简单记了一下重点吧,希望能对看官您有所帮助XD 以下⬇️是几个复习时讲过的题, ...

  4. stl学习记录(2)

    #include <iostream> #include <utility> #include <tuple> #include <complex> # ...

  5. Linux下新手怎样将VIM配置成C++编程环境(能够STL自己主动补全)

    ~ 弄拉老半天,最终弄的几乎相同啦,果然程序猿还是须要有点折腾精神啊. 首先你要安装vim,命令:sudo apt-get install vim vim它仅仅是一个编辑器,它不是IDE(比方code ...

  6. CS基础课不完全自学指南

    本文讲的是计算机学生怎么自学专业课,说长点就是该如何借助网络上已有的高质量学习资源(主要是公开课)来系统性的来点亮自己的CS技能树.这篇文章完全就是一篇自学性质的指南,需要对编程充满热情,起码觉得编程 ...

  7. QT5 QSS QML界面美化视频课程系列 QT原理 项目实战 C++1X STL

    QT5 QSS QML界面美化视频课程系列 QT原理 项目实战 C++1X STL 课程1   C语言程序设计高级实用速成课程 基础+进阶+自学 课程2   C语言程序设计Windows GDI图形绘 ...

  8. 从零自学Hadoop(22):HBase协处理器

    阅读目录 序 介绍 Observer操作 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Sour ...

  9. 前端自学路线之js篇

    上一篇我们讲了前端切图的学习路线,不知大家有没有收获.今天来聊聊前端工程师的核心技能之——JavaScript.js这门语言看似简单,但要做到入门.熟练以至于架构的程度,还是有一段路要走的,今天就来聊 ...

随机推荐

  1. hdu 5713(状态压缩DP)

    要进行两次dp, 第一个,dp[i],1<=i<=(1<<n) 其中用i的二进制形式表示已选择的点. dp[i] 用来保存i中的点构成一个连通块,边集多少种可能. 转移方程: ...

  2. asmca无法创建ASM磁盘

    现象 grid用户使用asmca无法创建asm磁盘,如下图 分析 如图所示,报错说是 Grid Infrastructure 出了问题.那么 Grid Infrastructure 是什么 ? 在安装 ...

  3. HTTP请求过程详解

    以请求新浪的首页为例,总结HTTP请求的流程: 步骤1:浏览器首先向服务器发送HTTP请求,请求包括: 方法:GET还是POST,GET仅请求资源,POST会附带用户数据: 路径:/full/url/ ...

  4. Extjs中renderer:function函数用法

    renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){ } 1.value是当前单元格的值 2.cellme ...

  5. 【图像处理Matlab】2 灰度变换 imadjust stretchlim

    f=imread('123.tif'); % 读入一幅图片 g=imadjust(f,[ ],[ ]); % 负片显示 [imadjust] imadjust(f, [low_in high_in], ...

  6. LF will be replaced by CRLF in git add

    git add 出现这样的提示: LF will be replaced by CRLF in qinqiu.txt. 这个时候要: $ rm -rf .git  // 删除.git $ git co ...

  7. java 多线程1

    进程: 线程: 多线程: 假象:只是CPU在做快速的切换 多线程的好处: 1.解决了一个进程里面可以同时运行多个任务(执行路径) 2.提高资源利用率,而不是效率. 多线程的弊端: 1.降低了一个进程里 ...

  8. 网页上记录鼠标的点击次数和一段有用的php代码,自己学习使用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 在centos6.5中安装mysql5.7

    简介 博主最近在研究mysql的读写分离和主从复制,一台master和两台slave,三台机器在同一个局域网中,首先就就要在centos6.5中安装mysql5.7.好了,废话不多说,接下来进入正题. ...

  10. 【CITE】 C#中实现拖动无边框Form窗体

    首先建一个Windows应用程序 将Form1的 FormBorderStyle属性设置为None 主要是在Form1窗体触发三个事件:Form4_MouseDown,Form4_MouseMove, ...