作业介绍
vector
vector
是 STL 提供的 内存连续的、可变长度 的数组(亦称列表)数据结构。能够提供线性复杂度的插入和删除,以及常数复杂度的随机访问,它能够存放各种类型的对象。
定义
vector类 的属性和用法_vector 存入-CSDN博客
头文件vector
vector<int> v;
vector<int> v1(3, 6);//v1里包含3个6
vector<int> v2(v1.begin(), v1.end());//复制v1
vector<int> v3(v1);//复制v1
vector<vector<int> >;//二维数组
元素访问
vector
提供了如下几种方法进行元素访问
at()
v.at(pos)
返回容器中下标为pos
的引用。如果数组越界抛出std::out_of_range
类型的异常。operator[]
v[pos]
返回容器中下标为pos
的引用。不执行越界检查。front()
v.front()
返回首元素的引用。back()
v.back()
返回末尾元素的引用。
迭代器
vector 提供了如下几种 [迭代器]
begin()
返回指向首元素的迭代器,其中*begin = front
。end()
返回指向数组尾端占位符的迭代器,注意是没有元素的。rbegin()
返回指向逆向数组的首元素的逆向迭代器,可以理解为正向容器的末元素。rend()
返回指向逆向数组末元素后一位置的迭代器,对应容器首的前一个位置,没有元素。
长度和容量
与长度相关:
empty()
返回一个bool
值,即v.begin() == v.end()
,true
为空,false
为非空。判断是否为空。size()
返回容器长度(元素数量)。
元素增删及修改
增
push_back(x)
在末尾插入一个元素x,均摊复杂度为 常数,最坏为线性复杂度。insert(it,x)
支持在某个迭代器位置插入元素x、insert(it,n,x)
可以插入多个元素x。
删
clear()
清除所有元素erase(it)
删除某个迭代器或者区间的元素,返回最后被删除的迭代器。
erase(first,last)
,删除[first,last)中的元素。pop_back()
删除末尾元素,常数复杂度。
其它
swap()
与另一个容器进行交换。
list
list
是 一个线性双向链表结构。能够提供常数复杂度插入和删除,以及线性复杂度的随机访问,它能够存放各种类型的对象。list支持双向迭代器,没有下标
,必须使用迭代器遍历list。(由于不支持随机迭代器,不能写迭代器+x,迭代器-x,不能用sort()函数,但list拥有sort()成员函数)
定义
头文件list
list<int> v;
迭代器
list 提供了如下几种 [迭代器]
begin()
获取链表的起始地址。end()
获取链表的结束地址。
长度和容量
与长度相关:
empty()
判断链表是否为空。size()
返回链表元素个数。
元素增删
增
push_back(x)
往链表尾部添加元素。push_front(x)
往链表头部添加元素。pop_back(x)
链表尾部移除元素。pop_front(x)
链表头部添加元素。insert(it,x)
支持在某个迭代器位置插入元素x、insert(it,n,x)
可以插入多个元素x。
删
clear()
清空链表erase(开始地址,结束地址)
删除链表中指定范围之间的元素。remove(值val)
删除和val相等的元素
其它
swap()
与另一个容器进行交换。- sort(链表对象) 链表元素排序
- reverse(开始地址,结束地址) 翻转链表
题目
认领作业后才可以查看作业内容。
- 状态
- 正在进行…
- 题目
- 11
- 开始时间
- 2025-1-9 0:00
- 截止时间
- 3333-5-1 23:59
- 可延期
- 24 小时