vector是一种可以用作动态数组的数据结构,方便好用。
#include<vecotr>用来将STL的vector包含到程序中。
vector<double> V;是一个声明,用于生成管理double型元素的向量。STL提供的vector是一个模板,需要我们在<>中指定类型,从而定义管理该类型数据的容器。在访问vector中的元素(赋值或写入)时,可以与数组一样使用“[]”运算符。
例如:vector中定义了如下表的成员函数
函数名 功能 复杂度
size() 返回响亮的元素数 O(1)
push_back(x) 在向量末尾添加元素x O(1)
pop_back() 删除响亮的最后一个元素 O(1)
begin() 返回指向向量开头的迭代器 O(1)
end() 返回指向向量末尾(最后一个元素的位置)的迭代器 O(1)
insert(p,x) 在向量的位置p处插入元素x O(n)
erase(p) 删除向量中位置p的元素 O(n)
clear() 删除向量中所有元素 O(n)
这里的迭代器可以看成一个指针。
代码:
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
void print(vector<double> V) {
for(int i=0; i<V.size(); i++)
printf("%.1lf%c",V[i],i==V.size()-1?'\n':' ');
}
int main()
{
vector<double> V;
V.push_back(0.1);
V.push_back(0.2);
V.push_back(0.3);
V[2] = 0.4;
print(V); //0.1 0.2 0.4
V.insert(V.begin() + 2, 0.8);
print(V); //0.1 0.2 0.8 0.4
V.erase(V.begin() + 1);
print(V); //0.1 0.8 0.4
V.push_back(0.9);
print(V); //0.1 0.8 0.4 0.9
return 0;
}