STL之vector

1.功能介绍 vector 底层就是一个数组,当你向该数组中添加元素不足时自动扩大。

2.常用命令

(1) vector a; 定义一个数据元素类型为 int 的 vector。类型可以为任何的基本类型,如 int、 double、char、结构体、甚至 vector,如二维 vector a :vector< vector< int> > a;一维:vector<int> a;

(2) a.clear(); 初始化,清空数据,但是不会释放内存,如首先分配了 10,000 个字节,然后 erase 掉后面 9,999 个,则虽然有效元素只有一个,但是内存占用仍为 10,000 个。但是大部分是不会卡内存的,除非多组数据+数据量很大,或者使用memset也可以。

(3)a.push_back(b); 向尾部插入 b

(4)a.size() vector 当前元素个数,下标从 0 开始 如遍历 vector :for (int i=0; i < a.size(); i++)~;

(5)a[x] 引用 vector 下标为 x 的元素,跟数组一样。

(6)sort(a.begin(),a.end()) 对 vector 内的数据元素进行排序。也可以使用自定义函数排序

  (7)  a.insert(a.begin()+i,x) 6 在第 i+1 个元素前面插入 x。

  (8)  a.erase(a.begin()+2) 删除第 3 个元素。

  (9)  a.erase(a.begin()+i,a.begin()+j); 删除 i 到 j-1 这个区间的元素 。 insert 和 erase 操作是 o(n)的,时间复杂度大,不推荐使用。

3..应用举例:边的存储 struct edge { int u,v,w; //表示一条从 u 到 v 权值为 w的有向边 }; vector e[N]; e[a].push_back( (edge){a,b,c } ); 存储一条以 a 为起点的有向边。

制作不易,请点一个不要钱的赞,谢谢!

点赞果14514,光速更新下一篇。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值