一·功能:
二·初始化
(1)vector
(2) vector
(3) vector
(4) vector
(5)int b[7]=(1,2,3,4,5,9,8];
vecctor
三·对象
(1) a.assign(b.begin(), b.begin()+3);//b为向量,将b的9~2个元素构成的向量赋给a
(2) a.assign(4,2);//是a只含4个元素,且每个元素为2
(3)a.back();//返回a的最后一个元素
(4) a.front();//返回a的第一个元素
(5) a[i];//返回a的第1个元素,当且仅当a[i]存在2013-12-07
(6) a.clear();//清空a中的元素
(7)a.empty();//判断a是否为空,空则返回ture,不空则返回false
(8) a.pop_back();//删除a向量的最后一个元素
(9) a.erase(a.begin()+1,a.begin()+3);//删除a中第1个(从第0个算起)到第2个元素,也就是说删除的元素从a.begin()+1算起(包括它)一直到a.begin()+ 3(不包括它)
(10) a.push_back(5);//在a的最后一个向量后插入一个元素,其值为5
(11) a.insert(a.begin()+1,5);//在a的第1个元素(从第0个算起)的位置插入数值5,如a为1,2,3,4,插入元素后为1,5,2,3,4
(12) a.insert(a.begin()+1,3,5);//在a的第1个元素(从第0个算起)的位置插入3个数,其值都为5
(13)a.insert(a.begin()+1,b+3,b+6);//b为数组,在a的第1个元素(从第0个算起)的位置插入b的第3个元素到第5个元素(不包括b+6),如b为1,2,3,4,5,9,8 ,插入元素1,4,5,9,2,3,4,5,9,8
(14)a.size();//返回a中元素的个数;
(15)a.capacity();//返回a在内存中总共可以容纳的元素个数
(16) a.resize(10);//将a的现有元素个数调至10个,多则删,少则补,其值随机
(17) a.resize(10,2);//将a的现有元素个数调至10个,多则删,少则补,其值为2
(18)a.reserve(100);//将a的容量(capacity)扩充至100,也就是说现在测试a.capacity();的时候返回值是100.这种操作只有在需要给a添加大量数据的时候才 显得有意义,因为这将避免内存多次容量扩充操作(当a的容量不足时电脑会自动扩容,当然这必然降低性能)
(19) a.swap(b);//b为向量,将a中的元素和b中的元素进行整体性交换
(20)a==b;//b为向量,向量的比较操作还有!=,>=,<=,>,<
四·举例
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
给定 n (2≤n≤100)(2 leq n leq 100)(2≤n≤100) 个非负整数 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an ,每个数代表第 i 个木板的高度 h(1≤h≤100001 leq h leq 100001≤h≤10000 单位 m),忽略木板体积,木板宽度为 1m。现在把这些木板间隔 1m 均匀的放在一个大小合适的容器内。你需要找出两条木板,使得他们之间构成的容器可以容纳最多的水。
俩木板选定之后会拆除其他木板,你只用计算这俩木板组成容器的容积。
题目有多组数据,第一行 T 表示数据组数 每组数据第一行 n 接下来一行为 n 个木板的高度,空格分隔。输出描述:
给出每组能容纳最多的水的体积。
示例1
输入复制1 9 1 8 6 2 5 4 8 3 7
1 9 1 8 6 2 5 4 8 3 7输出
复制49
4
代码如下:
#includeusing namespace std; int main(){ int T; cin>>T; while(T--){ int n; cin>>n; vector s(n); for(int i=0; i >s[i]; int M=0; int i=0,j=n-1; while(i s[j])j--; else i++; M=max(M,k); } cout<
以上是我对vector的理解,要是写的不好,请多多包涵!



