c++容器 STL
2019-01-24 22:30:32
记录学习PAT的一些知识,有待更新
注:本文是对Algorithm 算法笔记 的总结
C++标准库模板(Standard Template Library,STL)
【vector】
1.单独定义一个vector vector<typename> name;
- vector<int> name;
- vector<double> name;
- vector<char> name;
2.定义vector数组
- vector<typename> Arrayname[arraySize]
- 例如 vector<int> vi[100];
3.vector 容器内元素访问
- 通过下标访问
定义一个为 vector<typename> vi; 可以直接访问如:vi[0]、vi[1]
2.通过迭代器访问
vector<typename>::iterator it; 这样 it 就是一个vector<typename>::iterator 型的变量;
指出的是vi[i]和*(vi.begin()+i)是等价的;(类似于指针)
#include <cstdio>
#include <vector>
#include<iostream>
using namespace std; int main(){
vector<int> vi;
for(int i=;i<=;i++){
vi.push_back(i); }
vector<int>::iterator it =vi.begin();
for(int i=;i<;i++){
printf("%d",*(it+i));
}
return ;
}
4.vector常用函数解析
(1)push_back();
(2)pop_back()
()size()
()clear()
(5)insert()
(6)erase()
5.vector 的常见用途
(1)存储数据
(2)用连接表存储图
【set】
1.set的定义:set<typename> name;
- set<int> name;
- set<double> name;
- set<char> name;
- set数组的定义: set<typename> Arrayname[arraySize-1] 如:set<int> a[100];
2.set容器内元素的访问
- set<typename>::iterator it; 这样 it 就是一个set<typename>::iterator 型的变量;
3.set常用函数
- insert()
- find()
- erase()
- size()
- clear()
4.set的常见用途
set最主要的作用是自动去重并按升序排序
【map】
1.map的定义:map<typename1,typename2> mp;
比如:map<string,int> mp; 第一个 typename1 是键的类型,第二个 typename2 是值的类型 注意如果是字符串到整型的映射必须使用string
2.map容器内元素的访问
(1)通过下标,如: mp['c'];
(2)通过迭代器,如:map<typename1,typename2>::iterator it;
#include<stdio.h>
#include<map>
using namespace std;
int main(){
map<char,int> mp;
mp['m']=;
mp['r']=;
mp['s']=;
for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++){
print("%c %d\n",it->first,it->second);
}
return ; }
3.map常用函数
- find()
- erase()
- size()
- clear()
4.map的常见用途
- 需要建立字符与整数之间的映射
- 判断大整数或者其他类型的数据是否存在的题目,把map当bool数组使用
【queue】
1.queue的定义:queue<typename> name;
2.queue容器内元素的访问
先进先出的结构,所以只能用front() 访问队首元素,或是通过 back() 访问队尾元素
3.queue常用函数
- push()
- front(),back()
- pop()
- empty()
- size()
4.queue 的常见用途
c++容器 STL的更多相关文章
- 容器STL
一.迭代器iterator 迭代器是容器的一种遍历方式,每种容器都定义了自己的迭代器类型 声明一个迭代器: 容器名称<数据类型>::iterator 迭代器名称 vector<int ...
- STL容器与配接器
STL容器包括顺序容器.关联容器.无序关联容器 STL配接器包括容器配接器.函数配接器 顺序容器: vector 行为类似于数组,但可以根据要求 ...
- STL之顺序容器
顺序容器: vector:数组 list:链表 deque:双端数组 顺序容器适配器: stack:堆栈 queue:队列 priority_queue:优先级队列 deque是一个动态数组 dequ ...
- STL理论基础、容器、迭代器、算法
一.STL基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段 ...
- C++标准模板库STL算法与自适应容器(栈和队列)
参考<21天学通C++>第23与第24章节,对STL算法与自适应容器进行介绍. 实际上在前面的STL顺序容器.关联容器进行介绍时或多或少引用到了一些STL算法中的模板函数.而自适应容器是在 ...
- 详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...
- STL学习之路
本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者.这实际上是我学习STL的一篇笔记,老鸟就不用看了. 什么是泛型程序设计 我们可以简单 ...
- 跟我学STL系列(1)——STL入门介绍
一.引言 最近这段时间一直都在自学C++,所以这里总结下自己这段时间的学习过程,通过这种方式来巩固自己学到的内容和以备后面复习所用,另外,希望这系列文章可以帮助到其他自学C++的朋友们. 由于本人之前 ...
- STL之vetor 排序
1 STL提供的Sort 算法 C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点.STL 排序算法同样需要保持高效.因此,对于不同的需求,STL提供的不同的函数, ...
随机推荐
- Python 学习笔记(十一)Python语句(二)
For 循环语句 基础知识 for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for 循环规则: do sth >>> for i in "python ...
- ArrayList详解
一.ArrayList类介绍:(这里给出jdk1.8源码上中文翻译) ArrayList是List接口以可变数组方式实现的,实现了所有的lis接口中的操作,并容许有null等所有元素.除了实现了Lis ...
- 微信小程序 | 未来O2O电商的“阴谋”
发展历史 2016年1月11日,微信之父张小龙时隔多年的公开亮相,提出了公众号服务的短板,而透露微信内部正在研发的新形态工具,称之"微信小程序". 2016年9月21日,微信小程序 ...
- C++笔记009:C++对C的扩展——“实用性”增加
原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 笔记八中已经说到:在 C语言中定义了3个层次的作用域,即文件(编译单元).函数和复合语句. C语言中的变量都必须在作用域开始的位置定义! ...
- 复习宝典之MyBatis
查看更多宝典,请点击<金三银四,你的专属面试宝典> 第五章:MyBatis MyBatis是一个可以自定义SQL.存储过程和高级映射的持久层框架. 1)创建sqlsession的流程 my ...
- 开源框架:DBUtils使用详解
一.先熟悉DBUtils的API: 简介:DbUtils是一个为简化JDBC操作的小类库. (一)整个dbutils总共才3个包: 1.包org.apache.commons.dbutils 接 ...
- centos7 使用指定邮箱发送邮件
一.安装sendmail与mail .安装sendmail: ) centos下可以安装命令:yum -y install sendmail ) 安装完后启动sendmail命令:service se ...
- openssl windows平台编译库
首先感谢http://blog.csdn.net/YAOJINGKAO/article/details/53041165?locationNum=10&fps=1和https://www.cn ...
- 用Python生成词云
词云以词语为基本单元,根据词语在文本中出现的频率设计不同大小的形状以形成视觉上的不同效果,从而使读者只要“一瞥“即可领略文本的主旨.以下是一个词云的简单示例: import jieba from wo ...
- 北京Uber优步司机奖励政策(2月2日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...