1. 字符串截取
截取下标从2(第3个字符)开始截取3个字符的字符串
string str = "ABCDEFG";
string cut= str.substr(2,3);
最终,cut="CDE",即从下标为2开始向后数3位
2. 字符串扩容
string s(len);
s.resize(len+len2);
3. sort函数中cmp重写
如果cmp返回结果为False, 那么函数就会将他们互换位置;
如果cmp返回结果为True,就会保持原来位置不变。
class Solution {
public:
string minNumber(vector<int>& nums) {
string s="";
sort(begin(nums),end(nums),cmp);
for(int i=0;i<nums.size();i++)
s+=to_string(nums[i]);
return s;
}
bool static cmp(string& s1, string& s2)//注意要加static
{
return s1+s2<s2+s1;
}
};
另一种形式:
sort(begin(nums),end(nums),[](string& s1, string& s2){//注意没有函数名cmp,用[]
return s1+s2<s2+s1;
});
4.字符串初始化
string s(n,'0');//s="00...00",初始化为n个0
5.字符串比较函数
in strcmp(string str1,string str2) //区分字符串中字母大小写地比较
int strcasecmp(string str1,string str2) //忽略字符串中字母大小写地比较
str1=str2时,返回0;str1>str时返回1;str1<str2时返回-1。
6. 关于位运算
剑指15.16都与为运算有关
7.c++vector insert函数
iterator insert( iterator loc, const TYPE &val );
void insert( iterator loc, size_type num, const TYPE &val );
void insert( iterator loc, input_iterator start, input_iterator end );
insert() 函数有以下三种用法:
在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器,
在指定位置loc前插入num个值为val的元素
在指定位置loc前插入区间[start, end)的所有元素 .