STL-vector实现动态数组

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;
}


 


猜你喜欢

转载自blog.csdn.net/hpuw1234/article/details/77430958