一、动态数组概念。
动态数组之所以叫动态数组,是因为它大小可以不用初始化,和静态数组不同。
二、动态数组的创建。
格式:vector<存储类型 > 变量名;
vector<int> int_v; // 定义int类型的vector并命名为int_v
vector<double> double_v; // 定义double类型的vector并命名为double_v
struct node
{
int a;
double b;
};
vector<node> struct_v; // 定义node结构体类型的vector并命名为struct_v
三、头文件和函数的引用。
头文件:
#include <vector>
函数:
函数名 | 含义 |
---|---|
v.push_back(x)
|
将元素x插入到vector末尾
|
v.pop_back()
|
将vector末尾的元素删除
|
v.clear()
|
将所有元素删除
|
v[下标]、v.at(下标)
|
访问指定下标的元素
|
v[pos] = x
|
修改指定下标pos的元素为x
|
v.size()
|
v中的元素个数
|
v.resize(n)
| 将v的大小变为n |
v.erase(pos)
| 删除指定迭代器位置的元素 |
v.insert(pos, x)
| 在指定迭代器位置前插入元素x |
v.front()
|
返回v的第一个元素
|
v.back()
|
返回v的最后一个元素
|
v.empty() | v是否为空容器,若空则返回true |
四、动态数组和静态数组的区别。
静态数组需要创建大小,而动态数组不一定要;静态数组需要一位一位的移动才能完成插入、删除等操作,时间复杂度是O(n),而动态数组可以直接引用函数,时间复杂度是O(1)。
作者10岁的小Tyler