STL-vector实现动态数组

来源:互联网 发布:网络与新媒体大学排名 编辑:程序博客网 时间:2024/05/17 23:36

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.4V.insert(V.begin() + 2, 0.8);print(V);            //0.1 0.2 0.8 0.4V.erase(V.begin() + 1);print(V);           //0.1 0.8 0.4V.push_back(0.9);print(V);           //0.1 0.8 0.4 0.9return 0;}


 


原创粉丝点击