学一个更新一个
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); //删除一条序列