STL笔记

一、string

字符串输入scanf("%[^\n]",str)

一、string 输入字符串

1、不带空格的输入 直接cin>>str;

2、带空格的输入 getline(cin,str,delm) delm为输入截至条件,不加的话默认到回车结束。

cin>>str

getline(cin,str)

二、string str 的最后一位的访问和删除

str.back() //字符串最后一个字符
str.pop_back() //删除字符串最后一个字符

三、string find()

str.find('a',x)//如果不加x,默认从第一个字符开始找

str.find("hello") //也可以查找字符串,返回值为字符串第一个字符下标

str.find("hello") == str.npos //表示没有找到 

四、str.insert()  str.substr()

str.insert(x,"y")//从x的位置插入y这个字符串

str.substr(x,y)//从x开始读y个字符

str.erase

string s1("value");
string s2("value");
string s3("value");
string s4("value");

s1.erase();//执行后,s1为空
s2.erase(0,2); //执行后,s2为”lue”
s3.erase(s3.begin());//执行后,s3为”alue”
s4.erase(s4.begin(),++s4.begin());//执行后,s4为”alue”

 

五、判断是否这个字符串有字符

str.empty()

 if (str.empty()) {
        cout << “字符串为空”;
    }
    else {
        cout << "字符串不为空";
 }

 六、反转字符串、

string str = "abs";
    reverse(str.begin(),str.end());
 cout<<str<<endl;

二、unordered_map

#include<unordered_map>
unordered_map<int,int> S;

if(S.count(x)==0) cout<<"x不在该容器中";

三、结构体重载

struct node{
    int sum,c,d;
    
    bool operator < (const node &W) const{
        if(W.sum==sum) return c<W.c;//从小到大
        if(W.c==c) return d<W.d;
        return sum<W.sum;
    }
}a[N];

四、优先队列

priority_queue<int> q;//大根堆
priority_queue<int,vector<int>,greater<int>> q;//小根堆

q.top() //取最上边的值

五、sort函数

sort(a,a+n,greater<int>() );//从大到小排

bool cmp(node X,node Y)
{
    if(X.c==Y.c) return X.a<Y.a;//从小到大
}//结构体排序

六、二分函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值