Loading

常用STL的常见用法

//#pragma comment(linker, "/STACK:1024000000,1024000000")
//#pragma GCC optimize(2)
//#include <bits/stdc++.h>
#include<unordered_map>
#include<unordered_set>
#include <algorithm>
#include <iostream>
#include<fstream>
#include<sstream>
#include<iterator>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdio>
#include<cctype>
#include<vector>
#include<deque>
#include<queue>
#include<stack>
#include<map>
#include<list>
#include<set>

//freopen("C:\\Users\\CAI\\Desktop\\Test\\in.txt", "r", stdin);
//freopen("C:\\Users\\CAI\\Desktop\\Test\\out.txt", "w", stdout);
//freopen("C:\\Users\\CAI\\Desktop\\Test\\tout.txt", "w", stdout);

using namespace std;
typedef double dou;
typedef long long ll;
typedef pair<int, int> pii;
typedef map<int, int> mii;

#define pai acos(-1.0)
#define M 1000500
#define inf 0x3f3f3f3f
#define mod 1000000007
#define IN inline
#define W(a) while(a)
#define lowbit(a) a&(-a)
#define left k<<1
#define right k<<1|1
#define lson L, mid, left
#define rson mid + 1, R, right
#define ms(a,b) memset(a,b,sizeof(a))
#define Abs(a) (a ^ (a >> 31)) - (a >> 31)
#define random(a,b) (rand()%(b+1-a)+a)
#define false_stdio ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)

int main() {
    false_stdio;


    return 0;

}
//string常用
void String()
{
    string str;
    str.substr(起点下标,长度(包含起点))//复制子串
    str.resize(长度, 填充);//重新设置大小
    str.empty();//检查是否为空,空则返回true
    str.size();//获取字符串大小
    str.find(字符或字符串, 起点下标)//找到返回匹配的第一个字符的下标,找不到则返回string::npos
    str.insert(str.begin(),字符串或字符串) //插入字符串在起点前面
}

//map常用
void Map_()
{
    map<typedef, typedef>Map;
    Map.erase(key);//删除key的元素
    Map.count(元素);//如果有该元素则返回1,没有则返回0,没有则返回map.end()
    Map.find(元素);//返回该元素下标,没有则返回map.end()
    iter->first;//代表key
    iter->second;//代表元素
}

//vector常用
void Vector_()
{
    vector<int>num;
    num.push_back();//添加到尾部
    num.erase(num.begin(), num.begin()+n);//删除0~n-1
    num.insert(num.begin() + id, x);//插入x在i第id位的前面
    num.clear();//清空
}

//queue常用
void queue_()
{
    queue<int>num;
    num.push();//添加到队尾
    num.pop();//弹出队头
    num.front();//返回队头元素
    num.back();//返回队尾元素
    num.empty();////检查是否为空,空则返回true
}

//Set常用
void Set()
{
    set<int>num;
    num.upper_bound();//返回大于某个值元素的迭代器
    num.lower_bound();// 返回指向大于(或等于)某值的第一个元素的迭代器
    num.insert();// 在集合中插入元素
    num.find();// 返回一个指向被查找到元素的迭代器
}


void priority_queue_() {
    struct Data {
        int a, b;
        //重载小于号
        bool operator <(const Data& t)const {
            return a < t.a;//降序
            return a > t.a;//升序
        }
    };
    priority_queue<Data, vector<Data>, less<Data>>num;//最大堆
    priority_queue<Data, vector<Data>, greater<Data>>num;//最小堆
}



void Daily()
{
    abs();//整数求绝对值
    fabs();//浮点数求绝对值

    reverse(num.begin(), num.end());//反转字符串或者数组
    vector<int>::iterator iter = num.begin();//迭代器

    //字符串转换和串流的反复利用
    int num;
    string str;
    stringstream ss;
    ss << str;
    ss >> num;
    ss.str("");
    ss.clear();
}

 

posted @ 2019-03-16 19:25  苟住  阅读(585)  评论(0)    收藏  举报