2018-05-05
cpp-vector的用法
vector来自STL
一维vector
创建一维vector:
1 | vector<int> nums; //不指定长度 |
添加元素
1 | nums.push_back(1); //直接从数组末端添加 |
删除元素
1 | nums.resize(nums.size-i); //直接将数组长度减小,某种方式上删掉了后面i个 |
数组遍历
1 | for(int i = 0; i < nums.size(); i++){ |
其他
获得长度:nums.size()
排序(O(nlogn)):sort(nums.begin(),nums.end());
翻转:reverse(nums.begin(), nums.end());
合并两个vector:合并nums1和nums2,并将合并后的数组赋值给nums
1 | vector<int> nums1(m),nums2(n); |
二维vector
创建m*n的二维vector: 直接定义
1 | vector<vector <int> > nums(m ,vector<int>(n)); //m*n的二维vector |
动态创建m*n的二维vector
方法一:
1 | vector<vector <int> > nums; |
方法二:
1 | vector<vector <int> > nums; |
动态创建二维数组nums[m][n]
C语言版:
1 | #include<malloc.h> |
C++版:
1 | int **nums=new int*[m]; |
初始化二维数组
1 | vector<vector <int> > nums(m ,vector<int>(n,0)); //m*n的二维vector,所有元素为0 |
获得二维数组的行数:nums.size()
;
获得二维数组的列数:nums[0].size()
数组遍历
1 | int m = nums.size(),n = nums[0].size(); |
vector容器的方法
- int size() : 返回容器内的元素个数
- void clear() :清空所有元素
- bool empty() :判断是否为空
- void push_back(int x) :在表尾添加x
- void pop_back() :删除表尾元素
- back() :返回表尾元素
- front() :返回表头元素
- operator[] (int idx) :返回vector中idx索引位置的对象
- int capacity() :返回vector的内部容量
- void reserve(int capacity) :设置vector的新容量
dzzxjl