STL与基础数据结构

二次信任 提交于 2019-12-02 06:59:26

内容参考书籍《算法竞赛入门到进阶》

1.vector。

  数组是基本数据结构,有静态数组和动态数组,在比赛中如果空间足够,能用静态数组就用数组,在空间紧张的情况下可以使用STL的vector建立动态数组。

  vector是STL的动态数组,在运行时能根据需要改变数组大小。vector容器是一个模板类,能存放任何类型的对象。

1 vector<int> a;//默认初始化,为空
2 vector<int> b(a);//用a定义b
3 vector<int> a(100);//a有100个值为0的元素
4 vector<int> a(100,6);//100个值为6的元素
5 vector<string> a(10,"null");//10个值为null的元素
6 vector<string> vec(10,"hello");//10个值为hello的元素
7 vector<string> b(a.begin(),a.end());//b是a的复制
8 struct point {int x,y;};
9 vector<point>a;//a用来存坐标(或者向量???或者其他东西?)
View Code

  当然还可以定义多维数组,例如vector<int>a[MAXN];它的一维是固定的MAXN,二维是动态的。用这种方式可以实现图的邻接表的存储。

  vector常用操作:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!