vector学习

preface

本文是对C++,STL中的vector学习记录。

以后与vector相关的内容更新在此处。仅供参考。

文章尾部有一些演示代码片段


About

向量vector是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。

在使用它时, 需要包含头文件 vector
#include<vector>

vector容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素。此外,vector也提供了许多的方法来对自身进行操作。


成员函数

详细请看这儿

以下列举一些我觉得常用的

元素访问

函数名 作用
at 访问指定的元素,同时进行越界检查
operator[] 访问指定的元素
front 访问第一个元素
back 访问最后一个元素
data 返回指向内存中数组第一个元素的指针

容量

函数名 作用
empty 检查容器是否为空
size 返回容纳的元素数
max_size 返回可容纳的最大元素数
reserve 预留存储空间
capacity 返回当前存储空间能够容纳的元素数

修改器

函数名 作用
clear 清除内容
insert 插入元素
erase 擦除元素
push_back 将元素添加到容器末尾
pop_back 移除末元素
resize 改变容器中可存储元素的个数
swap 交换内容

练习代码

一维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <vector>
using namespace std;

// vector 学习
int main() {
vector<int> a;

cout<<a.empty()<<endl;

for(int i=0;;i++)
{
int tem;
cin >> tem;
a.push_back(tem);
if(getchar()=='\n') //遇回车结束
break;
}

for(int j=0;j<a.size();j++)
cout<<a[j]<<" ";

cout<<a.empty()<<endl;
return 0;
}

二维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <vector>
using namespace std;

int main() {
vector<vector<int>> a;
int M=5,N=5;
a.resize(M);
for(int i = 0;i < M;i++)
a[i].resize(N);

for(int i = 0; i < M;i++){
for(int j = 0; j < N;j++){
a[i][j]= i + j;
}
}

for(int i = 0; i < M;i++){
for(int j = 0; j < N;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

参考

C++中vector用法详解
std::vector
学习C++ -> 向量(vector)

关注我的微信公众号[李一二],即时看更多的文章