STL常用函数简记(不断更新)

学一个更新一个


vector类:

初始化vector:三种不错的方法:

1,vector<vector<int>> matrix{{1,2,3},{4,5,6},{7,8,9}};直接二维数组,最简单的方法,不过貌似在书里没有出现过,但是我在codeblock上编译通过,大家可以试试

2,中规中矩的,首先int a[] = {1,2,3,4,5,6};然后vector<int> matrix(a,a + 6);这样也可以快速初始化。

3,对内容没有要求或者要求单一,vector<int> matrix(6,3);里面包含6个3。


要注意的是,因为vector是用数组实现的,所以如果你一开始没有定义足够的长度,或者根本没定义长度,例如vector<int> undefinedVector;然后你想要调用或者赋值,例如undefinedVector[0] = 0;cout<<undefinedVector;这两步都会报错,因为这个undefinedVector根本就是个空指针,你不可能给他赋值或者输出。

解决办法有两个:

第一种办法是通用的:内置函数push_back(),直接给你开辟空间还可以赋值。

第二种只有java适用,你可以给指针new一个空间出来然后顺便赋值。


序列类:

void reverse(begin, end)//反转序列,1234    —》 4321

bool  next_permutation(begin,end)//   下一个序列,1234 变成1243返回true,如果是4321 变成1234返回false



删除类:

void  unique(begin,end)   // 把前后相同的元素去掉,一般与sort连用

iterator remove(begin , end,  val)  // 删除价值等于val的序列里所有值但是不是直接删除而是移动到队尾,返回要删除元素的开端,一般与erase连用

void  erase(iterator)//删除指针指着的点, void erase(begin, end);  //删除一条序列


  



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值