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

来源:互联网 发布:淘宝智能版店铺 编辑:程序博客网 时间:2024/05/19 18:37

学一个更新一个


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