博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ primer 第九章
阅读量:4036 次
发布时间:2019-05-24

本文共 745 字,大约阅读时间需要 2 分钟。

1. 不能直接将一种容器内的元素复制给另一种容器,但允许通过传递一对迭代器间接实现该功能。试用迭代器时,不要求容器类型相同,容器内的元素类型也可以不相同,只要它们相互兼容,能够将要复制的元素转换为新容器的元素类型,就可以实现复制。

 

2. 指针就是迭代器,所以也允许通过使用内置数组中的一对指针初始化容器。

 

3. 任何insert或push操作都可能导致迭代器失效。当编写循环将元素插入到vector或deque容器中时,必须确保迭代器在每次循环后都得到更新。

 

4. swap不会删除会插入任何元素,而且保证在常量时间内实现交换。由于容器内没有移动任何元素,因此迭代器不会失效。

 

5. 为了使vector实现快速的内存分配,其实际分配的容量要比当前所需的空间多一些。vector用这些额外的存储区来存放新添加的元素。

size函数返回当前的元素个数,而capacity返回可以存储的元素总数。

 

6. string类将npos定义为保证大于任何有效下标的值。所以当进行字符串查找时,若返回string::npos,则表示查找没有匹配。

 

7. 适配器包括容器适配器、迭代器适配器和函数适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。

容器适配器让一种以存在的容器采用另一种不同的抽象类型的工作方式实现。

 

8. 容器适配器包含:queue, priority_queue, stack三种。

stack可以建立在vector, list或deque容器之上。

queue要求与其关联的基础容器提供push_front运算,因此不能建立在vector容器上。

priority_queue要求随机访问功能,因此可建立在vector或者deque容器上,不能建立在list容器上。

转载地址:http://rgfdi.baihongyu.com/

你可能感兴趣的文章
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
补充自动屏蔽攻击ip
查看>>
谷歌走了
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
SQL 多表联合查询
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
C++中使用Mongo执行count和distinct运算
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
关于AIS编码解码的两个小问题
查看>>