复盘3.续
6)A-ACCEPT_牛客小白月赛85 (nowcoder.com)
#include
using namespace std;
const int N=3e4+5;
const int inf=0x3f3f3f3f;
#define int long long
#define pb push_back
mapmp;
bool cmp(char a,char b)
{
return mp[a]ve;
void solve()
{
int t;
cin>>t;
ve.pb('A'),ve.pb('C'),ve.pb('E'),ve.pb('P'),ve.pb('T');
while(t--)
{
mp.clear();
int n;
string s;
cin>>n>>s;
for(int i=0;i
概念:
【STL】C++ STL超全总结_std::multimap
1.vector:
遍历:
1)vector::iterator it;
for(it=ve.begin();it!=ve.end();it++)cout<<*it<
using namespace std;
int main() {
vectorve = {1, 2, 3, 4, 5};
cout << lower_bound(ve.begin(), ve.end(), 3) - ve.begin() << endl;
cout << upper_bound(ve.begin(), ve.end(), 3) - ve.begin();
return 0;
}
2.栈只能对栈顶元素(即最后进入的元素)进行操作,遍历只能取出放数组里面遍历
3.
返回最小值:
priority_queue,greater >qu;
返回最大值:
priority_queuequ;
4.deque,vector,queue,string:可以用sort
5.map:
排序:
1)map自定义排序利用vector
2)map中自动排序先按first排,之后再按second排(从小到大)
查找:
mp.find(x)是否等于mp.end(),等于是没找到,不等于是找到
访问:
1)map::iterator it=mp.find(x);
cout<first<<' '<second<::iterator it;
for(it=mp.begin();it!=mp.end();it++)
cout<first<<' '<second<first<<' '<second< m{{1, 2}, {2, 2}, {1, 2}, {8, 2}, {6, 2}};//有序
map::iterator it1 = m.lower_bound(2);
cout << it1->first << "\n";//it1->first=2
map::iterator it2 = m.upper_bound(2);
cout << it2->first << "\n";//it2->first=6
6.set:
查找:和map一样
自定义排序:用结构体,参考习题:指纹锁
multiset:可重复,有序;
unordered_set:不可重复,无序
unordered_multiset:可重复,无序
访问:
和vector类似:
set::iterator it;
for (it = se.begin(); it != se.end(); it++)
cout << *it << endl;
访问最后一个元素可以用cout<<*se.rbegin()或cout << *(--se.end()) << endl;