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常用容器基本用法汇总的更多相关文章

  1. STL常用容器用法

    -1. 本文章中所有函数原型均为C++98的标准. 通用的操作 //遍历容器--以vector,map为例 vector<int> vt; map<int,int> mp; f ...

  2. C++中STL常用容器的优点和缺点

    我们常用到的STL容器有vector.list.deque.map.multimap.set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我 ...

  3. C++ STL常用容器浅析

    首先要理解什么是容器,在C++中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对象的指针,这种对象类型就叫做容器.简单来说 容器就是包含其他类的对象们的对象,当然这种(容器) ...

  4. STL常用容器使用方法

    在程序头部使用#include<stack>来引入STL的stack容器,然后使用stack<int> s语句来声明一个管理整型数据的容器s.stack常用成员函数:push( ...

  5. 【C++】STL常用容器总结之五:双端队列deque

    6.双端队列deque 所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速.而在中间插入元素则会比较费时,因为必须移动中间其他的元素.双端队 ...

  6. C++中STL常用容器的区别(转)

    我们常用到的STL容器有vector.list.deque.map.multimap.set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我 ...

  7. STL源代码学习--vector用法汇总

    一.容器vector 使用vector你必须包含头文件<vector>: #include<vector> 型别vector是一个定义于namespace std内的templ ...

  8. 【Example】C++ STL 常用容器概述

    前排提醒: 由于 Microsoft Docs 全是机翻.所以本文表格是我人脑补翻+审校. 如果有纰漏.模糊及时评论反馈. 序列式容器 序列容器是指在逻辑上以线性排列方式存储给定类型元素的容器. 这些 ...

  9. c++ STL 常用容器元素类型相关限制 指针 引用

    c++ 的 STL 中主要有 vector , list, map, set  , multimap,multiset 这些容器完全支持使用内置类型和指针(指针注意内存泄露问题). 就是说乱用智能指针 ...

随机推荐

  1. 反射(C#编程)

    反射提供了封装程序集.模块和类型的对象(Type 类型).可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性.如果代码中使用了属性,可以利用反射对 ...

  2. Bzoj2442:修剪草坪

    Sol 一个很显然的暴力,设\(f[i]\)表示选到\(i\)的最优效率 每次枚举一段不与前面连续的长度小于\(k\)的区间转移来 # include <bits/stdc++.h> # ...

  3. Windows Developer Day - MSIX and Advanced Installer

    前面一篇我们介绍了 Adaptive Cards 的基础知识,而在 Windows Developer Day 的 Modern Application Experience 环节,还有一个需要划重点 ...

  4. 微信退款 - tp5

    原文:http://www.upwqy.com/details/19.html 1 微信退款官方文档  https://pay.weixin.qq.com/wiki/doc/api/app/app.p ...

  5. django 下拉菜单显示为object的解决办法

    在创建完Django数据库结构之后,使用Django自带的强大的admin功能往数据库中添加数据,图形化界面如下: 但时候有下拉框选项(只要在model中有定义Charfield就会显示为下拉框),如 ...

  6. Spring MVC执行流程

    SpringMVC是隶属于Spring Web中的一部分, 属于表现层的框架. 其使用了MVC架构模式的思想, 将Web层进行职责解耦, 使用请求-响应模型简化Web开发 SpringMVC通过中央调 ...

  7. opencv 学习入门篇

    unbuntu 安装:http://blog.csdn.net/cocoaqin/article/details/78163171 windows 安装:https://jingyan.baidu.c ...

  8. Throwable.异常

    异常: 在运行期间发生的不正常情况. 在JAVA中用类的形式对异常的情况进行了类的封装. 这些描述不正常情况的类就称为异常类. 异常类就是java通过面向对象的思想将问题封装成了对象.用异常类对问题进 ...

  9. Python功能键

    swapcase ,大小写翻转 title,每个单词首字母大写 upper,全部大写 lower,全小写 center,居中(可填充符号) lstrip,去除首尾空格斜杠符号 find,寻找出现的位数 ...

  10. 3.21电脑重装“operation not found system ”和xp分盘”分配表有标记为已使用的未用簇”

    问题一.是用光盘重装系统后重启,提示operation not found system ①考虑是系统问题,没装好,还是引导文件丢失;换新盘装,若还是一样; ②分析认为是分区问题,必须是活动分区+主分 ...