C++容器(Vector)

2

C++容器(Vector)

  容器是C++非常方便的功能,今天给小伙伴们介绍vector库,vector库是C++专门用于处理动态单端数组的库,里面内置了许多增删改查的算法,在刷题时常常使用它。

vector容器

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<iostream>
#include<vector>
using namespace std;

// 为了方便显示,在这里将打印操作定义为一个函数
void printVector(vector<int> v) {
cout << "v:";
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
}

int main() {

// 创建一个vector容器,因为vector是一个模板,可以存放任意类型的数据,但是需要指定数据类型。
// 而且建立以后只能存放该类型的数据,还可以存放vector类型的数据,类似于二维数组。
vector<int> v = { 1, 2, 3 };
printVector(v);

// empty判断容器是否为空,为空则返回true,否则返回false
cout << "v是否为空:" << v.empty() << endl;
// capacity求容器的容量
cout << "v的容量为:" << v.capacity() << endl;
// size求容器的大小,注意大小和容量虽然给人的感觉是一样的,但是它们完全不同
// 大小是求得容器中元素的个数,而容量相当于目前申请的内存空间。因为vector是动态数组,因此为了扩展方便,一次性会申请很多内存,这样避免每添加一个元素申请一次内存。
// 所以容量就是目前申请的内存,以但达到vector容量时,会自动再去申请一部分内存。
cout << "v的尺寸为:" << v.size() << endl;

// resize是将vector调整大小,如果大于原始数组,则填充数值,达到resize的大小,否则会删除超出的部分。
v.resize(10);
printVector(v);
cout << "v的容量为:" << v.capacity() << endl;
cout << "v的尺寸为:" << v.size() << endl;

// push_back是最经常用的操作,在末尾添加元素。
v.push_back(4);
printVector(v);
cout << "v的容量为:" << v.capacity() << endl;
cout << "v的尺寸为:" << v.size() << endl;

// pop_back和push_back相反,将末尾元素移除。
v.pop_back();
printVector(v);
cout << "v的容量为:" << v.capacity() << endl;
cout << "v的尺寸为:" << v.size() << endl;

// 索引元素可以直接类似于数组的写法,也可以使用at进行索引
cout << "v[2] = " << v[2] << endl;
// front获取vector第一个元素,等价于v[0]
cout << "第一个元素为:" << v.front() << endl;
// back()获取vector最后一个元素,等价于v[v.size() - 1]
cout << "最后一个元素为:" << v.back() << endl;

// clear清空容器中的所有内容,注意capacity和size的区别,内存一旦申请,常规的操作就不会释放,但是size不同。
// size是元素的个数,因此以但清空vector,size就会清0.
v.clear();
printVector(v);
cout << "v的容量为:" << v.capacity() << endl;
cout << "v的尺寸为:" << v.size() << endl;

return 0;
}

1

C++小结

  当然了vector的相关操作还有很多很多,在这里也不可能一一讲解,但是常用的一些操作都已经介绍,尤其是empty,size,push_back,pop_back,clear,back,索引和遍历这些操作,是笔试,面试中的重中之重,有了vector容器,使得我们写代码时更加方便,请小伙伴们务必放在心上。

-------------本文结束感谢您的阅读-------------
0%