雅中STL容器练习题

已结束 ACM/ICPC 开始于: 2025-5-5 14:00 604 小时 主持人: 16
    <span data-docs-delta="[[20&#44;   " 一、什么是="" vector"&#44;  ="" "0:\"rgba(0%2c%200%2c%200%2c%200.85)\"|31:2|inline-dir:\"ltr\""]&#44;  ="" [20&#44;  ="" "\n"&#44;  ="" "24:\"ndqk\"|32:2|direction:\"ltr\""]&#44;  ="" "向量(vector)是一个顺序容器(sequence="" container),它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组(元素个数可变)"&#44;  ="" "0:\"rgba(0%2c%200%2c%200%2c%200.85)\"|27:\"12\"|31:2|inline-dir:\"ltr\""]&#44;  ="" "24:\"gqtl\"|direction:\"ltr\""]&#44;  ="" "二、vector的常见函数"&#44;  ="" "24:\"mfzz\"|32:2|direction:\"ltr\""]&#44;  ="" [30&#44;  ="" [{"a1":[40&#44;  ="" [[20&#44;  ="" "函数名"&#44;  ="" "26:\"54772603\"|8:1|inline-dir:\"ltr\""]&#44;  ="" "24:\"rmtl\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"qkmh\""]&#44;  ="" "a2":[40&#44;  ="" "push_back(元素)"&#44;  ="" "26:\"54772603\"|inline-dir:\"ltr\""]&#44;  ="" "24:\"fxgy\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"htru\"|7:1"]&#44;  ="" "a3":[40&#44;  ="" "insert(位置,元素)"&#44;  ="" "24:\"wst2\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"1bfb\"|7:1"]&#44;  ="" "a4":[40&#44;  ="" "insert(位置,个数n,元素)"&#44;  ="" "24:\"4lsb\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"bcid\"|7:1"]&#44;  ="" "a5":[40&#44;  ="" "insert(位置,向量头指针first,向量尾指针end)"&#44;  ="" "24:\"wobu\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"ej20\"|7:1"]&#44;  ="" "a6":[40&#44;  ="" "erase(位置)"&#44;  ="" "24:\"4n2m\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"ftmy\"|7:1"]&#44;  ="" "a7":[40&#44;  ="" "erase(开始位置,结束位置)"&#44;  ="" "24:\"tuym\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"jbzp\"|5:1|7:1"]&#44;  ="" "a8":[40&#44;  ="" "pop_back(="" )"&#44;  ="" "24:\"pdew\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"xedm\"|5:1|7:1"]&#44;  ="" "a9":[40&#44;  ="" "clear(="" "24:\"lmx8\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"fki5\"|5:1|7:1"]&#44;  ="" "a10":[40&#44;  ="" "运算符[="" i="" ]"&#44;  ="" "24:\"uwak\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"nvxq\"|5:1|7:1"]&#44;  ="" "a11":[40&#44;  ="" "front(="" "24:\"know\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"kye5\"|5:1|7:1"]&#44;  ="" "a12":[40&#44;  ="" "back(="" "24:\"zrxl\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"mpqs\"|5:1|7:1"]&#44;  ="" "a13":[40&#44;  ="" "begin(="" "24:\"fo9f\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"5aen\"|5:1|7:1"]&#44;  ="" "a14":[40&#44;  ="" "end(="" "24:\"yuyo\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"e3gj\"|5:1|7:1"]&#44;  ="" "a15":[40&#44;  ="" "rbegin(="" "24:\"hgpy\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"ogez\"|5:1|7:1"]&#44;  ="" "a16":[40&#44;  ="" "rend(="" )="" "&#44;  ="" "24:\"rvva\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"2r8y\"|5:1|7:1"]&#44;  ="" "a17":[40&#44;  ="" "size(="" "24:\"ppmf\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"fshh\"|5:1|7:1"]&#44;  ="" "a18":[40&#44;  ="" "resize(大小)"&#44;  ="" "24:\"xnjl\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"ubec\"|5:1|7:1"]&#44;  ="" "a19":[40&#44;  ="" "max_size(="" "24:\"otfc\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"ih0c\"|5:1|7:1"]&#44;  ="" "a20":[40&#44;  ="" "empty(="" "24:\"am56\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"epcl\"|5:1|7:1"]&#44;  ="" "a21":[40&#44;  ="" "swap(="" "24:\"0xn1\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"mz9t\"|5:1|7:1"]&#44;  ="" "b1":[40&#44;  ="" "函数说明"&#44;  ="" "24:\"vxil\"|7:1|direction:\"ltr\""]]&#44;  ="" "25:\"qmvz\""]&#44;  ="" "b2":[40&#44;  ="" "增加一个元素到向量后面"&#44;  ="" "24:\"y0z0\"|direction:\"ltr\""]]&#44;  ="" "25:\"57dl\""]&#44;  ="" "b3":[40&#44;  ="" "插入元素到向量的指定位置"&#44;  ="" "24:\"ckqi\"|direction:\"ltr\""]]&#44;  ="" "25:\"drwa\""]&#44;  ="" "b4":[40&#44;  ="" "插入n个相同的元素到指定位置"&#44;  ="" "24:\"ui8y\"|direction:\"ltr\""]]&#44;  ="" "25:\"3bgw\""]&#44;  ="" "b5":[40&#44;  ="" "将另一个向量从first位置开始到结束(不包括end)之间的内容插入该向量的指定位置"&#44;  ="" "24:\"zjr6\"|direction:\"ltr\""]]&#44;  ="" "25:\"1w96\""]&#44;  ="" "b6":[40&#44;  ="" "删除指定位置的元素"&#44;  ="" "24:\"0npv\"|direction:\"ltr\""]]&#44;  ="" "25:\"1rmk\""]&#44;  ="" "b7":[40&#44;  ="" "删除向量中[first&#44;  ="" last)中元素"&#44;  ="" "24:\"u43v\"|direction:\"ltr\""]]&#44;  ="" "25:\"v79e\"|5:1"]&#44;  ="" "b8":[40&#44;  ="" "弹出(删除)向量的最后一个元素"&#44;  ="" "24:\"j4ly\"|direction:\"ltr\""]]&#44;  ="" "25:\"ehvt\"|5:1"]&#44;  ="" "b9":[40&#44;  ="" "清除向量的所有元素,size()变为0"&#44;  ="" "24:\"8rkp\"|direction:\"ltr\""]]&#44;  ="" "25:\"mx7p\"|5:1"]&#44;  ="" "b10":[40&#44;  ="" "取向量下标为i的元素"&#44;  ="" "24:\"lczc\"|direction:\"ltr\""]]&#44;  ="" "25:\"iv74\"|5:1"]&#44;  ="" "b11":[40&#44;  ="" "取向量的第一个元素"&#44;  ="" "24:\"07tf\"|direction:\"ltr\""]]&#44;  ="" "25:\"lusa\"|5:1"]&#44;  ="" "b12":[40&#44;  ="" "取向量的最后一个元素"&#44;  ="" "24:\"rgmw\"|direction:\"ltr\""]]&#44;  ="" "25:\"k8nq\"|5:1"]&#44;  ="" "b13":[40&#44;  ="" "返回向量头指针(迭代器)指向第一个元素"&#44;  ="" "24:\"qlwr\"|direction:\"ltr\""]]&#44;  ="" "25:\"rbxx\"|5:1"]&#44;  ="" "b14":[40&#44;  ="" "返回向量尾指针,指向向量最后一个元素的下一个位置"&#44;  ="" "24:\"aufz\"|direction:\"ltr\""]]&#44;  ="" "25:\"7zbc\"|5:1"]&#44;  ="" "b15":[40&#44;  ="" "反向迭代器,指向最后一个元素"&#44;  ="" "24:\"wiqn\"|direction:\"ltr\""]]&#44;  ="" "25:\"psh1\"|5:1"]&#44;  ="" "b16":[40&#44;  ="" "反向迭代器,指向第一个元素之前的位置"&#44;  ="" "24:\"pwsa\"|direction:\"ltr\""]]&#44;  ="" "25:\"ujl3\"|5:1"]&#44;  ="" "b17":[40&#44;  ="" "返回"&#44;  ="" "24:\"s1qc\"|direction:\"ltr\""]]&#44;  ="" "25:\"xkdr\"|5:1"]&#44;  ="" "b18":[40&#44;  ="" "重新设定向量的大小,也就是保存元素的个数"&#44;  ="" "24:\"yosp\"|direction:\"ltr\""]]&#44;  ="" "25:\"glmc\"|5:1"]&#44;  ="" "b19":[40&#44;  ="" "得到vector最大可以是多大"&#44;  ="" "24:\"y8xh\"|direction:\"ltr\""]]&#44;  ="" "25:\"eouj\"|5:1"]&#44;  ="" "b20":[40&#44;  ="" "判断向量是否为空,等价于size(="" )为0"&#44;  ="" "24:\"musy\"|direction:\"ltr\""]]&#44;  ="" "25:\"wdau\"|5:1"]&#44;  ="" "b21":[40&#44;  ="" "交换两个同类型向量的数据"&#44;  ="" "24:\"yhb3\"|direction:\"ltr\""]]&#44;  ="" "25:\"iieb\"|5:1"]}&#44;  ="" [[10&#44;  ="" 21&#44;  ="" "26:\"54772603\""]]&#44;  ="" 2&#44;  ="" "3:308"]]]&#44;  ="" "25:\"jznvfd\"|readonly:false"]&#44;  ="" "对应于数组,要注意:向量的大小是可变的,开始时向量为空,随着不断插入元素,向量自动申请空间,容量变大。"&#44;  ="" "24:\"mndl\"|direction:\"ltr\""]&#44;  ="" "注意学会使用:sort="" ()、reverse="" ()="" 等函数对="" vector="" 进行排序、逆序等操作"&#44;  ="" "0:\"rgba(0%2c%200%2c%200%2c%200.85)\"|27:\"12\"|31:2|inline-dir:\"ltr\""]]"="" data-copy-origin="https://shimo.im">

一、什么是 vector

向量(vector)是一个顺序容器(Sequence Container),它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组(元素个数可变)

二、vector的常见函数

函数名

函数说明

push_back(元素)

增加一个元素到向量后面

insert(位置,元素)

插入元素到向量的指定位置

insert(位置,个数n,元素)

插入n个相同的元素到指定位置

insert(位置,向量头指针first,向量尾指针end)

将另一个向量从first位置开始到结束(不包括end)之间的内容插入该向量的指定位置

erase(位置)

删除指定位置的元素

erase(开始位置,结束位置)

删除向量中[first, last)中元素

pop_back( )

弹出(删除)向量的最后一个元素

clear( )

清除向量的所有元素,size()变为0

运算符[ i ]

取向量下标为i的元素

front( )

取向量的第一个元素

back( )

取向量的最后一个元素

begin( )

返回向量头指针(迭代器)指向第一个元素

end( )

返回向量尾指针,指向向量最后一个元素的下一个位置

rbegin( )

反向迭代器,指向最后一个元素

rend( )

反向迭代器,指向第一个元素之前的位置

size( )

返回

resize(大小)

重新设定向量的大小,也就是保存元素的个数

max_size( )

得到vector最大可以是多大

empty( )

判断向量是否为空,等价于size( )为0

swap( )

交换两个同类型向量的数据



1、什么是迭代器

迭代器(iterator):用来指向、遍历、修改容器元素的变量,类似指针。

A、可遍历 STL 容器内全部或部分元素的对象

B、指出容器中的一个特定位置

</tr> </tbody> </table>

2、迭代器函数





#include 
using namespace std;

int main() { //初始化 vectorpjc;//创建一个叫做pjc的向量 vectorjxy = {1, 2, 3, 4, 5, 6}; /* 增加: 容器名.push_back(元素) 容器名.insert(位置, 元素); 容器名.insert(位置, n, 元素); 在位置插入n个元素 容器名.insert(位置, 容器的开始, 容器的结束); 在位置插入n个元素 */ pjc.push_back(3); pjc.push_back(2); pjc.push_back(1); pjc.insert(pjc.begin(), jxy.begin() + 3, jxy.end()); // for (int i = 0; i <= 5; i++) { // cout << pjc[i] << '\n'; // } /*删除 容器.erase(位置) 容器.erase(开始位置, 结束位置) 容器.pop_back() 默认删除最后一个位置的值 pjc.clear(); / / 修改 容器[位置]=新值 */ pjc[2] = 100; for (int i = 0; i <= 5; i++) { cout << pjc[i] << '\n'; } /*查询 容器.front() 容器.back() 容器.size() 容器.empty() */ cout << pjc.front() << '\n'; cout << pjc.back() << '\n'; cout << pjc.size() << '\n'; cout << pjc.empty() << '\n'; return 0; }

</span> 查看讲义和题解

操作

效果



*
</td>

返回当前位置上的元素值。如果该元素有成员,可以通过迭代器以 operator -> 取用

++

将迭代器前进至下一元素

==和 !=

判断两个迭代器是否指向同一位置

=

为迭代器赋值,(将所指元素的位置赋值过去)

状态
已结束
规则
ACM/ICPC
题目
23
开始于
2025-5-5 14:00
结束于
2025-5-30 18:00
持续时间
604 小时
主持人
参赛人数
16