头文件
#include <vector>
初始化
//vector<类型> 名字;
vector<int> a {1,2,3};
vector<int> b (4,0};//4个0
vector <int> c(b);
//二维
vector<int>num[5];//定义可变长二维数组
vector<vectot<int> >num;//定义一个行和列均可变的二维数组
//元素访问
//方式一:单个访问,假设num数组中已经有了5个元素
cout << num[4] << "\n"; //输出第五个数据
//一二维可变数组和普通数组的访问方法一样
//方式二:遍历
for(int i = 0; i < num.size(); i++)
cout << num[i] << " ";//下标范围在[0,num.size()),前开后闭
//方式三:智能指针
for(auto i : num)
cout << i << " ";
//迭代器访问
vector<int>::iterator it;
//相当于声明了一个迭代器类型的变量it
//通俗来说就是声明了一个指针变量
//方式一:
vector<int>::iterator it = vi.begin();
for(int i = 0; i < 5; i++)
cout << *(it + i) << " ";
cout << "\n";
//方式二:
vector<int>::iterator it;
for(it = vi.begin(); it != vi.end();it ++)
cout << *it << " ";
//vi.end()指向尾元素地址的下一个地址
方法函数
知道了如何定义初始化可变数组,下面就需要知道如何添加,删除,修改数据。
相关方法函数如下:
c指定为数组名称
代码 含义
c.front() 返回第一个数据
c.back() 返回最后一个数据
c.pop_back() 删除最后一个数据
c.push_back(element) 在尾部加一个数据
c.size() 返回实际数据个数(unsigned类型)
c.clear() 清除元素个数
c.resize(n,v) 改变数组大小为n,n个空间数值赋为v,如果没有默认赋值为0
c.insert(it,x) 向任意迭代器it插入一个元素x
例:c.insert(c.begin()+2,-1) 将-1插入c[2]的位置
c.erase(first,last) 删除[first,last)的所有元素
c.begin() 返回首元素的迭代器(通俗来说就是地址)
c.end() 返回最后一个元素后一个位置的迭代器(地址)
c.empty() 判断是否为空,为空返回真,反之返回假
注意: end()返回的是最后一个元素的后一个位置的地址,不是最后一个元素的地址,所有容器均是如此
排序
使用sort排序要: sort(c.begin(),c.end());
//降序
int cmp(const int &a,const int &b) {
//可以理解为前一个元素比后一个大就是降序
reutrn a > b;
}
原文章:https://blog.csdn.net/qq_50285142/article/details/122303529