倒计时71天

复盘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>-CSDN博客

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;

你可能感兴趣的:(c++)