#创作计划#Vector的常用用法
2026-08-07 16:37:38
发布于:浙江
不喜勿喷
由于最近学了vector的用法所以我来发个笔记:
vector是动态数组,比普通数组好用多了,但好用并不代表能乱用,而且也有一些弊端(二维数组方面vector有点麻烦,但存储邻接表当我没说)
我先说一维数组,二维数组最后说
定义vector要包涵下面的头文件,如果是万能头也当我没说
#include<vector>
而且要用C++ 11版本,如果不是C++ 11可能会编译错误
有人会问怎么调 C++ 11,我只会Dev-C++的调法,其他软件自己去查
首先打开上方工具栏里的工具:

再打开里面的编译选项:

再打开的页面上面的方框里写以下代码:
-std=c++11
再选编译时加入以下命令之后按确定就完成了

正文:
vector的定义(定义后可以直接使用)(这种定义方式是用多少长度就有多少长):
vector<(数据类型(可以是结构体))> (数组名);
实例:
vector<int> a;
一维数组就在后面加个东西(个人喜好这样当一维数组,这样也可以当二维数组):
vector<(数据类型(可以是结构体))> (数组名)(数组长度,数组初始化(这个可写可不写,不写int就默认0之类));
实例:
vector<int> a(10,7891);
这样a数组里都是7891了,别说这个数字有格调QAQ
这个的数组初始化后面会讲
注意,下标都是从0开始的
OK接下来就是常用用法了(用法里的数据类型我默认int):
vector的存储:
如果是上面直接定义的
注意:这个是尾部插入
(定义的数组名).push_back( (想加入的数) );
实例:
a.push_back(7891);
如果是后面带括号的定义的
(定义的数组名)[ (想加入的下标) ]= (想加入的数) ;
实例:
a[1]=7891;
vector的访问:
vector的访问都是一样的,直接输入下标就行了
(定义的数组名)[ (想访问的下标) ]
实例:
a[1];
vector检查是否为空:
如果为空返回true,不然返回false
(定义的数组名).empty();
实例:
if(a.empty())cout<<"a is empty!";
vector检查长度:
这会返回a里有多少个元素(仅限第2种定义,第1种会返回你定义的长度)
(定义的数组名).size();
实例:
cout<<a.szie();
vector删除元素:
(定义的数组名).erase( (元素下标) );
实例:
a.erase(1);
vector返回第一个元素和最后一个元素:
(定义的数组名).front();//第一个元素
(定义的数组名).back();//最后一个元素
实例:
a.front();//第一个元素
a.back();//最后一个元素
二维数组定义:
这个就是把两种结合起来
实例:
vector<int> a(100);
int s;cin>>s;//我的马蜂就这样
for(int i=1;i<=s;i++){
for(int j=1;j<=s;j++)
{
int x;cin>>x;
a[i].push_back(x);
}
}
for(int i=1;i<=s;i++){
for(int j=1;j<=s;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
vector就这样,也不难,具体还有什么用法自己去搜,这些是常用的,漏了评论区发,我会更新的,点一个赞呗!我写这么多也不容易QAQ
全部评论 2
显然不能加精,过水
2026-08-07 来自 浙江
0现在要加精至少绿以上难度
2026-08-07 来自 浙江
0本贴不能加精的详细理由
- 内容本身过于基础,并且只是讲了一些函数,甚至没有啥例题(虽然 vector 例题不多)
- 滥用标题,不符合题解的格式规范
2026-08-07 来自 浙江
0
@AC君可以加精吗?QAQ
2026-08-07 来自 浙江
0似是故人来
2026-08-07 来自 浙江
0https://www.acgo.cn/discuss/study/55345
2026-08-07 来自 浙江
0我没抄袭他人
2026-08-07 来自 浙江
0
























有帮助,赞一个