C++ 常见头文件学习

  • #include<set> + using namespace std;

set<int> st

添加:insert();

删除:erase();

查找 用迭代器,set<int>::iterator it=st.begin()

for(set<int>::iterator it=st.begin();it!=st.end();it++){....}

数量:size()

清零:clear()

  • #include<string> (注意不是string.h)+ using namespace std;

string str="abcdefg";

单个元素,作为字符访问:printf("%c",str[i]);//注意是%c

长度:str.length();

读和输出string,用<iostream>下的cin和cout:cin>>str;

转为字符数组:str.c_str();

子串:substr(pos,len)

查找子串:str.find(str2),找不到时返回string::npos

替换:str.replace(pos,len,str2),把str的pos开始的len个长度,替换为str2,注意str2的长度和len无关!!!! 

  • #include<queue>+using namespace std;

queue<int> q;

队首:q.front();

队尾:q.back();

入队:q.push();

出队:q.pop();

判空:empty();

  • #include<stack>+using namespace std;

stack<int> stk;

栈顶元素:stk.top();

入栈:stk.push();

出栈:stk.pop();

判空:stk.empty();

元素个数:stk.size();

  • #include<algorithm>+using namespace std;

min()、max()、swap()

逆序:reverse(it1,it2);逆序,将[it1,it2)之间的元素反转,it1和it2是迭代器的数组指针,例如reverse(a,a+4);//a是数组名

全排列:next_permutation(it1,it2);是原地进行,达到最后一种全排列时,返回false

#include<algorithm>
#include<stdio.h>
using namespace std;

int main(void){
    int a[10]={1,2,3};
    do{
        printf("%d%d%d",a[0],a[1],a[2]);
    }while(next_permutation(a,a+3));//输出123,132,213,231,312,321
    
    return 0;
}

填充:fill();//与memset不同,可以赋任意值!!!!!

#include<algorithm>
#include<stdio.h>
using namespace std;

int main(void){
    int a[5]={1,2,3,4,5};
    fill(a,a+3,233);
    return 0;//则,a变为:233,233,233,4,5
}

排序:sort(元素首地址,尾地址的下一元素地址,比较函数(选填) );

比较函数:bool cmp(类型 a,类型 b);

#include<stdio.h>
#include<algorithm>
using namespace std;
struct node {
	int x;
	int y;
}nodes[10];
bool cmp(node a, node b) {
	if (a.x != b.x) return a.x > b.x;//a.x>b.x时,a在b的前面
	else return a.y < b.y;//a.y<b.y时,a在b的前面
}
int main(void) {
    //此处对nodes赋值即可
	sort(nodes,nodes+10,cmp);
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

字江慕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值