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. Qt音视频开发06-海康sdk内核linux客户端

    一.前言 海康sdk的示例在官方是提供了的,但是无论UI还是交互简直是宇宙无敌的垃圾,猜测应该是初学者编写的,估计练手用的,所以老早就想把这个linux支持集成到自己的示例中,既然已经支持了windo ...

  2. Qt音视频开发35-Onvif图片参数

    一.前言 视频中的图片的配置参数一般有亮度.饱和度.对比度.锐度等,以前一直以为这些需要通过厂家的私有协议SDK来设置才行,后面通过研究Onvif Device Manager 和 Onvif Dev ...

  3. Idea中@Autowired 黄色波浪线问题以及注入类显示红色波浪线问题解决

    解决办法: 点开路径:File--->Settings--->Editor--->Inspections--->Spring--->Spring core--->C ...

  4. 即时通讯技术文集(第38期):IM代码入门实践(Part2) [共15篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第38 期. [- 1 -] 高仿Android版手机QQ首页侧滑菜单源码 [附件下载] [链接 ...

  5. 长连接网关技术专题(十):百度基于Go的千万级统一长连接服务架构实践

    本文由百度技术团队分享,引用自百度Geek说,原题"千万级高性能长连接Go服务架构实践",为了阅读便利,本文进行了排版优化等. 1.引言 移动互联网时代,长连接服务成为了提升应用实 ...

  6. 即时通讯技术文集(第28期):IM开发技术合集(Part1) [共18篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第28 期. [- 1 -] 新手入门一篇就够:从零开发移动端IM [链接] http://ww ...

  7. 【宝塔】搭建随机图API

    创建站点 首先,我们打开服务器的宝塔面板,如果没安装的推荐安装一个,因为这个对建站小白来说非常的方便. 我们参加一个 API 站点 然后到站点设置里申请一个 ssl 认证,再打开强制 https 添加 ...

  8. K_V键值存储对比

    memcached-键值存储 redis-键值存储 RocksDB-键值存储 KeyDB-键值存储 DynamoDB-键值存储 levelDB-键值存储 etcd-键值存储 Redis与其他数据库对比 ...

  9. C:条件编译

    问题 #ifdef HELIB_DEBUG long pa, pb; std::vector<long> slots; decryptBinaryNums(slots, a, *dbgKe ...

  10. nginx basic验证

    打开个生成htpasswd的网站 输入信息生成结果 将结果保存到nginx一个文件里面 修改nginx的conf文件 auth_basic "webA"; #这个"&qu ...