C++中常用STL解法

1.STL(标准模板库)。万能头文件

#include <bits/stdc++.h>
using namespace std;
int main()
{
    cin>>a;//输入数据;
    cout<<a;//输出数据
}
2.c++中引用。
#include <bits/stdc++.h>
using namespace std;
void swap(int &a,int &b)//把a,b的地址传入进去(类似于c语言的指针)。
{
    int c=a;
    a=b;
    b=c;
}
int main()
{
    int a,b;
    cin>>a>>b;
    swap(a,b);
    cout<<a<<" "<<b;
    return 0;
}
3.字符串(string)。
创建字符:
1.string s;//string是变量名 直接创建一个空的(大小为0)的string类型变量s
2.string s=*char;//创建string时直接用字符串内容对其赋值,注意字符串要用双引号“”。
3.string s(int n,char c);//创建一个string,由n个c组成,注意c是字符型要用单括号‘’。
读入方式:
cin>>s;//读入s,遇到空格或回车停止,无论原先s是什么内容都会被新读入的数据替代
getline(cin,s);//读入s,空格也同样会读入,直到回车才会停止
输出方式:
cout<<s;//将s全部输出到一行(不带回车)
演示:
#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin>>s;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s="xyjyyds";
    cout<<s;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s(7,'6');//貌似这个只能读入单个字符,不能读入多个字符,如果输入多个字符则自动按最后一个字符输出
    cout<<s;
}
小优点:
1.可以使用算术运算符,例如赋值运算符:=。//将后面的字符串赋值给前面的字符串o(n)。
比较运算符:==,!=,>=,<=,>,<;//比较的是两个字符串字典序的大小o(n)。
连接运算符:+,+=;//将一个运算符加到另一个运算符后面o(n)。
#include <bits/stdc++.h>
using namespace std;
int main()
{
	string s="0",ss="xyjyyds";
	cout<<s<<" "<<ss<<endl;
	s=ss;
	cout<<s<<" "<<ss<<endl;
	s=s+ss;
	cout<<s<<" "<<ss<<endl;
	cout<<(s>=ss);//返回值是1	
}
2.小知识(不用背,会用就行,比赛可以带资料)。
s[index]//返回字符串s中下标为index的字符,string中下标也是从0开始。o(1);
s.substr(p,n)//返回从s的下标p开始的n个字符组成的字符串,如果n省略就取到底o(n);
s.length()//返回字符串的长度o(n);
s.empty()//判断s是否为空,空返回1,不空返回0.
s.erase(p0,len)//删除s中从p0开始的len个字符,如果len省略就删到底
s.erase(s.began()*i)//删除下标为i个字符
s1.insert(p0,s2,pos,len)//后两个参数截取s2,可以省略
s.insert(p0,n,c)//在p0处插入n个字符c
s1.replace(p0,len0,s2,pos,len)//删除p0开始的len0个字符,然后在p0处插入串s2中pos开始的len个字符,后两个参数可以省略
s1.find(s2.pos)//从前往后,查找成功后返回第一次出现的下标,然后在p0处插入串s2中从pos开始的len个字符,后两个参数可以省略o(n*m);
s1.rfind(s2.pos)//从pos开始从后向前查找字符串s2中字符串在当前串后边第一次出现的下标o(n*m);