内容参考书籍《算法竞赛入门到进阶》
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用来存坐标(或者向量???或者其他东西?)
当然还可以定义多维数组,例如vector<int>a[MAXN];它的一维是固定的MAXN,二维是动态的。用这种方式可以实现图的邻接表的存储。
vector常用操作: