STL容器共有成员函数

size() max_size()

empty()

begin() end()

clear()

【链接】csdn_STL中所有容器共有成员函数

双端队列deque

1.创建与初始化:名称空间std

deque<int> dq;//会随机生成一个元素
deque<int> dq(8); //构造一个有8个元素的int型队列,默认初始化值(value)为0
deque<int> dq(8,50);//创建一个有8个元素的int型队列,默认初始化值(value)都设为50
deque<int> dq(dq.begin(), dq.end()); //迭代器创建队列
deque<int> dq1(dq);//拷贝构造队列
int n[]={1,2,3,4};
deque<int> dq(n,n+4);
deque<int> dq(&n[0],&n[4]); //将元素下标[0,4)的内容作为队列初值
//注意:末尾指针指向结束元素的后一个

2.基础出入队:

push_back()push_front():入队

pop_front()pop_back():出队,无返回值

3.容器函数:

size():返回容器大小

max_size():返回容器最大容量

empty():判断是否为空

4.遇到std::bad_alloc:

注意有关出入队成员函数是否接收了正确的参数;当然数据量太大也有可能;deque不是连续分配地址的

【链接】deque使用详解

集合set

映射map

字符串string

string类其实是STL中basic_string的实例

1.容器函数相关:

size()length():返回字节数(即字符数,不管是否有汉字),不包括'\0'。两者咩区别,源码一致。string类最初只有length(),沿用C习惯;后为兼容STL加入size(),作为STL容器属性存在。

max_size():获取支持的字符串大小上限,其实是unsigned(-1),所以依据平台和编译选项而各异,即所有位置1的情况。本地32位环境就是\(4294967295=2147483647+2147483648\)。当然实际容量受计算机内存限制。

resize():修改字符数量,可不是修改最大支持的字符数量(想屁嘞)

empty():上升到容器层面,那'\0'肯定也算在内,所以string永远不空的了

2.追加内容:

push_back('x'):追加单字符

append():追加字符串(string类型、cstring类型)、多个字符

+=:重载,追加字符串或单个字符

·【链接】C++的string类型中关于append函数、push_back函数和+=运算符的区别_良晨的技术站-程序员宅基地

3.查找子串:

find("xx"):寻找子串,返回该子串在原字符串中的下标位置(整型string::size_type);若未找到,返回特殊标志string::npos,值为-1

if(s.find("asd")==s.npos) ...

find_first_of("xx"):返回子串首次出现位置

find_last_of("xx"):返回子串最后出现位置

rfind("xx"):同find_last_of,反向查找——子串最后出现的位置

find("xx",n):返回子串在下标n之后出现的位置(包括n)

·【链接】C++ string中的find()函数

【记录】C++STL容器/特有类 使用积累的更多相关文章

  1. #C++初学记录(STL容器以及迭代器)

    STL初步 提交ACM会TLE /仅以学习STL与迭代器使用 C. Cards Sorting time limit per test1 second memory limit per test256 ...

  2. 转:STL容器里存放对象还是指针

    一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题.就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式   对于内建类 ...

  3. STL 容器的概念

    STL 容器的概念 在实际的开发过程中,数据结构本身的重要性不会逊于操作于数据结构的算法的重要性,当程序中存在着对时间要求很高的部分时,数据结构的选择就显得更加重要. 经典的数据结构数量有限,但是我们 ...

  4. 从零开始写STL—容器—vector

    从0开始写STL-容器-vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我 ...

  5. STL——容器(List)List 的概念

    1. List 容器的基本概念 1. list 是一个双向链表容器,可高效的进行插入删除元素,他的原理在于每个元素都有两个指针来记录前后两个元素的地址,像火车车厢一样,list 中各个元素在物理存储单 ...

  6. STL容器

    啦啦啦,今天听啦高年级学长讲的STL容器啦,发现有好多东西还是有必要记载的,毕竟学长是身经百战的,他在参加各种比赛的时候积累的经验可不是一天两天就能学来的,那个可是炒鸡有价值的啊,啊啊啊啊啊 #inc ...

  7. STL容器删除元素的陷阱

    今天看Scott Meyers大师的stl的用法,看到了我前段时间犯的一个错误,发现我写的代码和他提到错误代码几乎一模一样,有关stl容器删除元素的问题,错误的代码如下:std::vector< ...

  8. 【转】c++中Vector等STL容器的自定义排序

    如果要自己定义STL容器的元素类最好满足STL容器对元素的要求    必须要求:     1.Copy构造函数     2.赋值=操作符     3.能够销毁对象的析构函数    另外:     1. ...

  9. STL容器的适用情况

     转自http://hsw625728.blog.163.com/blog/static/3957072820091116114655254/ ly; mso-default-props:yes; m ...

  10. STL容器的遍历删除

    STL容器的遍历删除 今天在对截包程序的HashTable中加入计时机制时,碰到这个问题.对hash_map中的每个项加入时间后,用查询函数遍历hash_map,以删除掉那些在表存留时间比某个阈值长的 ...

随机推荐

  1. HttpClientManager

    HttpClientManger package com.gateway.http.client; import com.fasterxml.jackson.core.type.TypeReferen ...

  2. Qt音视频开发38-ffmpeg视频暂停录制的设计

    一.前言 基本上各种播放器提供的录制视频接口,都是只有开始录制和结束录制两个,当然一般用的最多的也是这两个接口,但是实际使用过程中,还有一种可能需要中途暂停录制,暂停以后再次继续录制,将中间部分视频不 ...

  3. Qt编写安防视频监控系统44-视频上传

    一.前言 视频上传用来将本地存储的视频文件上传到云端服务器,间接的实现了本地视频存储到云端的功能,其实本质上是先存储在本地,文件生成后再去上传到云端的,最终的效果一样就是,为了拓展兼容性,直接做了单独 ...

  4. Qt音视频开发26-ffmpeg播放器

    一.前言 用ffmpeg来实现自己的播放器,这是一直以来的一个目标,之前的难点卡在音视频同步以及如何播放声音这两点(尽管之前已经进行过不少的尝试和探索,但是问题还是挺多,比如音视频同步不完美,有些文件 ...

  5. 问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题

    解决:Opencv(3.1.0/3.4/4.1.0)找不到 /opencv2/gpu/gpu.hpp 问题 环境: 系统:Win10 环境:Opencv3.4.0/4.1.0 显卡:1080ti 问题 ...

  6. 即时通讯技术文集(第31期):IM开发综合技术合集(Part4) [共13篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第31 期. ​[- 1 -] IM消息ID技术专题(一):微信的海量IM聊天消息序列号生成实践 ...

  7. TNN编译及使用

    要使用 CMake 和 TNN 库基于 C++ 实现神经网络模型的推理预测,你需要按照以下步骤进行操作: 准备环境 确保已安装 CMake 和 C++ 编译器.并从 TNN 的 GitHub 仓库下载 ...

  8. 引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常 解决办法

    出现题目的异常,多是引用第三方控件引起的. 在NEW时,需要初始化该对象. AxESACTIVEXLib.AxESActiveX ax = new AxESACTIVEXLib.AxESActiveX ...

  9. MySQL-进阶篇

    一.连接查询 图解示意图 1.建表语句 部门和员工关系表: CREATE TABLE `tb_dept` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ...

  10. runoob-PostgreSQL 教程

    https://www.runoob.com/postgresql/postgresql-tutorial.html