一、string类补充
1.函数示例:
(1)find和rfind函数,返回的是下标或者string::npos
index=ss.find(s1,pos,num)
find从pos(包括)开始往右查找(num的作用待补充)
index=ss.rfind(s1,poss,num)
rfind从pos(包括)开始往左查找(num的作用待补充)
代码示例:
//>>>>Qiansui
#include<iostream>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
const int maxm=1e4+5;
string ss[3]{"123asd123","a123gh123","ea123s123"},s1="123";
int main(){
int index;
cout<<"find\n";
for(int i=0;i<3;++i){
index=ss[i].find(s1);
if(index!=string::npos) cout<<index<<endl;
else cout<<"Error\n";
}
cout<<"rfind\n";
for(int i=0;i<3;++i){
index=ss[i].rfind(s1,6);
if(index!=string::npos) cout<<index<<endl;
else cout<<"Error\n";
}
cout<<string::npos;
return 0;
}
运行结果:
(2)遍历
代码示例:
#include<iostream>
#include <string>
using namespace std;
int main(){
string s1{"world"};
for(int i=0;i<s1.size(); ++i)
cout<<s1[i]<<endl;
for(auto c : s1)
cout<<c<<endl;
return 0;
}
运行结果:
二、STL函数
头文件:#include
1.reverse函数 https://en.cppreference.com/w/cpp/algorithm/reverse
可以翻转数组、字符串、容器等
reverse函数用于反转在[first,last)范围内的顺序[first,last)(左闭右开),reverse函数没有返回值
例题:
https://atcoder.jp/contests/abc284/tasks/abc284_a?lang=en 简单的翻转vector<string>
三、priority_queue 优先队列
头文件#include<queue>
相关参考资料:
https://blog.csdn.net/c20182030/article/details/70757660
摘记:
默认从大到小,如:
priority_queue<int> a;
a.push(1);
cout<<a.top()<<'\n';
a.push(10);
cout<<a.top()<<'\n';
a.push(8);
cout<<a.top()<<'\n';
a.push(3);
cout<<a.top()<<'\n';
while(a.size()){
cout<<a.size()<<" "<<a.top()<<'\n';
a.pop();
}
return ;
greater<int>
——从小到大——priority_queue<int,vector<int>,greater<int>> a
less<int>
——从大到小——priority_queue<int,vector<int>,less<int>> a
top返回第一个,pop删除第一个,即队列头