c++算法刷题笔记

c++算法刷题笔记

    • 字符串处理
    • c++技巧
    • c++的全排列函数
    • greater用法

字符串处理


1.对于从键盘接受 Hello World这样存在空格的输入,不可以使用cin,可以使用形如string ch; getline(cin,ch);来接受一行字符串
2. 将string类转换成char[]时,可以使用strcpy(ch,str.c_str());,需要包含头文件#include
3. string s;int ans=stoi(s);可以将string类字符串转变为数字

c++技巧

sort函数对字符串排序
string str="hello world";sort(str.begin(), str.end());
for auto循环作为迭代器使用

       map<string, vector<string>> mp;
       vector<vector<string>> anagrams;
       for (auto p : mp) { 
           anagrams.push_back(p.second);
       }

c++的全排列函数

next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列。至于这里的“前一个”和“后一个”,我们可以把它理解为序列的字典序的前后。且该函数为bool型,当当前序列不存在下一个排列时,函数返回false,否则返回true。

需要强调的是,next_permutation()在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。

greater用法

对于map降序排列,可直接map>;
对于vector a,则得sort(a.begin(),a.end(), greater())
另外,cmp函数里,默认小于——>升序。

你可能感兴趣的:(算法笔记)