C++ STL常用容器基本用法汇总
1.vector
- 包含头文件
#include<vector>
- 使用命名域
using namespace std
- 定义元素类型为T的vector
vector<T> vec
- 增:向vector中添加元素a,使用成员函数
vec.push_back(a)
,元素a被加到向量末尾 - 删:
vec.pop_back()
删除最后一个元素 - 取:
vec[i]
可以取第i个元素,下标从0开始;取第一个元素vec.begin()
;vec.end()
是取最后一个的下一个 - 下图为成员函数
2.string
- 包含头文件
#include<string>
- 使用命名域
using namespace std
- 获取字符串长度:
str.length()
- 查找:
str.find(a,k)
a可以是字符也可以是字符串,k为int。返回从k开始,a首次匹配str中的位置,无匹配则返回-1,k若缺省则从0开始。 - 字符串倒置:
reverse(str.begin(), str.end())
- 截取子串:
str1 = substr(pos,n)
返回str中起始位置为pos,长度为n的字符串,n若缺省则到结尾 - 追加字符串:可以用
str.append(str1)
或者str+=str1
这个重载运算符来实现向str的末尾追加str1 - 比较字符串:
str.compare(str1)
相等返回0,str大于str1返回1,否则返回-1。也可以直接用>
,<
,=
3.stack
- 包含头文件
#include<stack>
- 使用命名域
using namespace std
- 定义元素为T类型的vector
stack<T> sta
- 成员函数表如下图
4.list
5.queue
- 定义一个queue的变量
queue<Type> M
- 查看是否为空范例
M.empty()
是的话返回1,不是返回0; - 从已有元素后面增加元素
M.push()
- 输出现有元素的个数
M.size()
- 显示第一个元素
M.front()
- 显示最后一个元素
M.back()
- 清除第一个元素
M.pop()
6.map
- 包含头文件
#include<map>
- 使用命名域
using namespace std
- map中的元素是一个pair,定义键为T1类型,值为T2类型的map
map<T1, T2> m
- 增:插入数据有以下四种方法
//以下例子中m为map<String,int>类型
m["a"] = 1;
m.insert(map<string, int>::value_type("a",1));
m.insert(pair<string,int>("c",3));
m.insert(make_pair("d",4));
- 根据键值取元素和修改元素对应的值
int i = m["a"]; //取到键值"a"对应的值
map<int, string>::iterator iter;
iter = m.find("a"); // 返回数据所在位置的迭代器,如果map中没有要查找的数据,则返回的迭代器等于end函数返回的迭代器
int i = iter->second; //用迭代器取到对应的值
iter->second=j; //修改迭代器对应的值
7.set
C++ STL常用容器基本用法汇总的更多相关文章
- STL常用容器用法
-1. 本文章中所有函数原型均为C++98的标准. 通用的操作 //遍历容器--以vector,map为例 vector<int> vt; map<int,int> mp; f ...
- C++中STL常用容器的优点和缺点
我们常用到的STL容器有vector.list.deque.map.multimap.set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我 ...
- C++ STL常用容器浅析
首先要理解什么是容器,在C++中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对象的指针,这种对象类型就叫做容器.简单来说 容器就是包含其他类的对象们的对象,当然这种(容器) ...
- STL常用容器使用方法
在程序头部使用#include<stack>来引入STL的stack容器,然后使用stack<int> s语句来声明一个管理整型数据的容器s.stack常用成员函数:push( ...
- 【C++】STL常用容器总结之五:双端队列deque
6.双端队列deque 所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速.而在中间插入元素则会比较费时,因为必须移动中间其他的元素.双端队 ...
- C++中STL常用容器的区别(转)
我们常用到的STL容器有vector.list.deque.map.multimap.set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我 ...
- STL源代码学习--vector用法汇总
一.容器vector 使用vector你必须包含头文件<vector>: #include<vector> 型别vector是一个定义于namespace std内的templ ...
- 【Example】C++ STL 常用容器概述
前排提醒: 由于 Microsoft Docs 全是机翻.所以本文表格是我人脑补翻+审校. 如果有纰漏.模糊及时评论反馈. 序列式容器 序列容器是指在逻辑上以线性排列方式存储给定类型元素的容器. 这些 ...
- c++ STL 常用容器元素类型相关限制 指针 引用
c++ 的 STL 中主要有 vector , list, map, set , multimap,multiset 这些容器完全支持使用内置类型和指针(指针注意内存泄露问题). 就是说乱用智能指针 ...
随机推荐
- java实现马踏棋盘问题
1.问题描述: 在国际象棋中,马走日,用户输入棋盘的起始位置从x:0-4,y:0-3输出从这一点开始,马走完整个棋盘的各个方案,并输出方案数 2.输入样式: 请输入棋盘马起始位置: 0 0 3.输出样 ...
- 异常-----freemarker.template.TemplateException: Expected collection or sequence. datas evaluated instead to freemarker.core.HashLiteral$SequenceHash on line 7, column 18 in inc/select.ftl.
1.错误描述 六月 26, 2014 11:26:27 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- freemarker处理map的数据(二十)
1.简易说明 (1)map取值 (2)key取值 2.实现示例 <html> <head> <meta http-equiv="content-type&quo ...
- mysql中的union用法以及子查询综合应用
union查询就是把2条或者多条sql语句的查询结果,合并成一个结果集. 如:sql1: N行,sql2: M行,sql1 union sql2 ---> N+M行 1.能否从2张表查询再uni ...
- CEOI2004锯木厂选址
斜率优化 # include <stdio.h> # include <stdlib.h> # include <iostream> # include <s ...
- 服务器安装centos
谈一下今天遇到的problem,虽然很基础,但是还是值得记录一下: 1.制作启动盘,并不需要使用UltralISO刻录,可以通过在linux下dd命令直接制作iso镜像启动盘下面是步骤: 1)打开终端 ...
- Servlet 过滤器、拦截器、监听器以及文件上传下载
在学习之初,总是对过滤器.拦截器.监听器这三个搞不清楚,现在进行一些记录,方便大家交流,也为了提高自身的学习能力! 如果想要了解这三个的作用,首先对servlet流程进行熟悉了解,servlet是客户 ...
- angular中label包含input点击事件的问题
问题:当点击input时,input不能勾选,单label内的其他区域点击均可控制input勾选. 分析:点击input时,$event.target.tagName //INPUT, 点击img ...
- PLSQL Developer连接远程数据库的配置
去Oracle的安装目录找到:D:\oracle\NETWORK\ADMIN这个路径下面的tnsnames.ora文件 修改文件: 这个是本地的 ORCL = (DESCRIPTION = (ADDR ...
- C#编写一款qq消息群发器
先上软件成品图 功能编写大概分为以下几个部分了: 获取QQ分组 发送消息 先来讲发送消息吧,实现还是比较简单 //这段主要是用来打开会话窗口的(只能列表中的好友进行会话的) System.Diagno ...