150725培训心得(vector)
2017-05-02 09:15
239 查看
vector(不定长数组)
在C语言中,数组定义必须给定长度。可是有的时候太浪费空间,能够利用STL中vector函数来解决问题。
1 基本操作
(1)头文件#include<vector>
(2)创建vector对象。vector<int> vec;
(3)尾部插入数字:vec.push_back(a);
尾部删除数字:vec.pop_back(a);
(4)使用下标訪问元素。cout<<vec[0]<<endl; 记住下标是从0開始的。
(5)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(6)删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0開始
(7)向量大小:vec.size();
(8)清空:vec.clear();
(9)初始化:memset(vec,0,sizeof(vec));
(10)判空:vec.empyt(); 空则返回1,不空则返回0
vector<int>a就是一个类似于int a[]的整数数组,仅仅只是他的长度不确定。能够用a.size()读取他的长度。
而vector<int>a[max]就是一个二维数组,仅仅是第一维的大小是固定的(不超过max),二维的大小就不固定了,
有时候n太大了,假设直接建立二维数组a
。这种二维数组绝对超出内存,就须要用到vector不定长的特性。
在C语言中,数组定义必须给定长度。可是有的时候太浪费空间,能够利用STL中vector函数来解决问题。
1 基本操作
(1)头文件#include<vector>
(2)创建vector对象。vector<int> vec;
(3)尾部插入数字:vec.push_back(a);
尾部删除数字:vec.pop_back(a);
(4)使用下标訪问元素。cout<<vec[0]<<endl; 记住下标是从0開始的。
(5)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(6)删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0開始
(7)向量大小:vec.size();
(8)清空:vec.clear();
(9)初始化:memset(vec,0,sizeof(vec));
(10)判空:vec.empyt(); 空则返回1,不空则返回0
vector<int>a就是一个类似于int a[]的整数数组,仅仅只是他的长度不确定。能够用a.size()读取他的长度。
而vector<int>a[max]就是一个二维数组,仅仅是第一维的大小是固定的(不超过max),二维的大小就不固定了,
有时候n太大了,假设直接建立二维数组a
。这种二维数组绝对超出内存,就须要用到vector不定长的特性。