STL容器vector4-6

已结束 ACM/ICPC 开始于: 2025-4-6 19:00 652 小时 主持人: 35
    <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 <bits/stdc++.h>
using namespace std;

int main() { //初始化 vector<int>pjc;//创建一个叫做pjc的向量 vector<int>jxy = {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>

<a href="https://shimo.im/docs/hxn3cTboDSCDZOdl/" target="_blank">查看讲义和题解</a>

操作

效果



*
</td>

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

++

将迭代器前进至下一元素

==和 !=

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

=

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

状态
已结束
规则
ACM/ICPC
题目
9
开始于
2025-4-6 19:00
结束于
2025-5-3 23:00
持续时间
652 小时
主持人
参赛人数
35