| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> c++Primer——第九章:顺序容器 -> 正文阅读 |
|
[C++知识库]c++Primer——第九章:顺序容器 |
1、几个迭代器 begin、end、cbegin、cend、rbegin、rend、crbegin、crend 2、与顺序容器大小相关的构造函数 顺序容器(array除外)提供一个构造函数。它接受一个容器大小和一个(可选的)元素初始值,如果我们不提供元素的初始值,则标准库会创建一个值初始化器。如果元素类型是没有默认构造函数的类类型,则除了大小参数外,还必须指定一个显式的元素初始值。 3、标准库array 使用array必须同时指定元素类型和大小
内置数组不能进行拷贝或对象赋值,但标准库array支持这种操作
4、赋值和swap 赋值相关运算会导致指向左边容器内部的迭代器、引用、指针失效。而swap操作不会使他们失效。 5、assign 赋值运算符要求左右两边的运算对象具有相同的类型。顺序容器(除了array)还定义了一个名为assign的成员,允许我们从一个不同但相容的类型赋值,或者从一个容器的子序列赋值。assign也是拷贝
6、swap swap操作交换两个相同类型的容器的内容。除array外,swap不对任何元素进行拷贝、删除或插入操作,因此可以保证在常数时间内完成。元素不会被移动的事实意味着除了string外,指向容器的迭代器、引用、指针在swap操作之后都不会失效,他们仍然指向swap交换前的元素,但是,着些元素已经属于不同的容器了。 7、emplace操作 emplace_fron、emplace、emplace_back是c++11新标准引入的成员,他们操作构造而不是拷贝元素。使用push或insert时是将元素类型的对象传递给它们,这些对象被拷贝到容器中,而调用emplace成员时,则是将参数传递给元素类型的构造函数
10、访问元素
以上操作使用前都需要确保容器非空,它们都返回元素的引用。非const得情况下可以当左值使用。 11、下标操作和安全的随机访问 下标运算符并不检查下标是否在合法的范围内,使用越界的下标是一种严重的程序设计错误,编译器不检查这种错误。如果我们希望确保下标是合法的。可以使用at成员函数,使用at下标越界时会抛出out_of_range异常
12、resize和reserve
shrink_to_fit也只是个请求,标准库并不保证一定退还内存 13、string的诸多操作 14、容器适配器 标准库定义了三个顺序容器适配器:stack、queue和priority_queue 一个容器适配器接受一种已有的容器类型。使其行为看起来像一种不同的类型 默认情况下stack和queue是deque实现的,priority_queue是在vector上实现的。我们可以在创建一个适配器时将一个命名的顺序容器作为第二个类型参数来重载默认容器类型
stack只要求push_back、pop_back、back操作,因此可以使用除array和forward_list外的任何容器类型来构造。queue要求back、push_back、front、push_front,因此可以构造与list或dqueu之上,但不能基于vector构造。priority_queue除了front、push_back、pop_back外还要求随机访问能力,因此可以用vector和deque构造,不能用list |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 20:19:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |