太久不刷题老是忘记一些函数的运用,特地开个帖子记录一下
---------------------------------------------------------------------------------------------------------------------------------
String1.replace
用str替换指定字符串从idx位置开始长度为len的字符
replace(idx,len,str);
class Solution {
public:
string replaceSpace(string s) {
for(int i=0;i
2.to_string() 将数字转换字符串
vector
1.accumulate(求和)
int sum=accumulate(begin(v),end(v),0);
第三个参数是求和初始值
2.初始化二维数组
vector>mp(n,vector(n,val));
或vector>mp(n,vector(n));
val处表示数组内元素初始化填充的数字,若不加val则默认初始化为0
题目练习59. 螺旋矩阵 II
3.begin()和end()
begin()返回的是第一个元素的迭代器,而end()返回指向容器最后一个元素之后一个位置的正向迭代器。
即(begin(v),end(v))是一个左闭右开区间
利用一个vector来创建另一个vector时要注意:
vectorfather={0,1,2,3};此时新建另一个vector继承father的前两个元素,则是
vectorchild(begin(father),begin(father)+2);//输出0,1
vectorchild(begin(father),begin(father));//没有开辟空间,注意是左闭右开!
常规操作
1.sort
从大到小排序可以直接用反向迭代器
sort(coins.rbegin(),coins.rend());
sort(begin(nums),end(nums),greater());
sort(nums.begin(), nums.end(), greater());
//两种写法均可
2.set
unordered_set/unorder_map底层是哈希表,set/map底层是红黑树,少了排序,刷题中用unordered_set比较快
双指针&滑动窗口
双指针分为对撞指针(两数之和)和快慢指针(环形链表)
有序:对撞指针或二分
无序:哈希表或排序后变有序做法
(n数之和)
滑动窗口:左出又进,维护一个区间(最大连续子序列和)



