STL vactor 的用法

来源:互联网 发布:淘宝开店阿里钱盾认证 编辑:程序博客网 时间:2024/06/05 08:19

上午看了三鲜的退役报告,感触良多,ACM的最后一年了,决定学习他的方法,少看解题报告,自己想,或许到了某天我也可以发明出什么YY树之类的什么东西,最近在做线段树,里面要用到vactor动态数组,决定自己好好的学学而不是去看别人的解题报告,从这里来好好学学吧,自己一点点的摸索而不是直接获得简单的知识。


1.insert 

包含头文件#include<vector>

申明 vector<XX>B( 3,100 )  -> [ 100,100,100];

迭代器声明vector<XX>::iterator C;

插入方法多样:

B.insert( b.begin(),200 ) -> [200,100,100,100];

B.insert( b.begin(),2,100 ) ->[100,100,200,100,100,100];

可以插入数组或者vector

B.insert( B的迭代器,要插入的迭代器首,迭代器尾 );

数组:

B.insert( B的迭代器,要插入的数组首,数组尾 );


2.输出vector

1>for( i=B.begin();i<B.end();i++ )//i为迭代器

cout<<*i;

2.>for( i=0;i<B.size();i++ )

cout<<B[i];



3 push_back & pop_back 

这两个操作模拟堆栈,push_back压栈,pop_back弹栈;


4.assign

用来初始化vector 例如A.assign( 7,100 );

用vector来初始化 B.assign( A.begin()+1,A.end()+1)

用数组来初始化 C.assign( array,array+n );


5.erase

B.erase( B.begin(),B.begin()+3 );

0,1,2,3全擦除


6.swap

A.swap(B);

A,B两个vector 中的元素全体交换


7.clear 

A.clear()全清零


8.at

类似于数组的下标 

B.at(1)=5   <-> B[1]=5;