1.string
C++的字符串类型:菜鸟教程
具体见下面代码
#include<iostream>
#include<string>
using namespace std;
string s;
int main()
{
cin>>s;
cout<<s<<endl;//s[1]:第几个数
s+="run";//可以直接做加法,允许里面有空格
string ss=s;//支持直接赋值
cout<<ss<<endl;
cout<<ss.size()<<endl; //输出字符串个数
cout<<s.substr(1,2)<<endl; //从下标1开始,输出长度为2的字符串
cout<<s.substr(1); //从下标1开始,输出到末尾
system("pause");
return 0;
}
c++11开始不太建议使用gets()来进行数据输入,下面介绍getline();
string s;
getline(cin,s); //允许有空格
cout<<s;
2.pair
#define PII pair<int,int> //一些默认规则
#define PSI pair<string,int>
#define x first
#define y second
pair<int,int>q;
q={a,b};
cout<<q.first<<q.second<<endl; //x,y替换
pair这里相当于一个结构体。
3.sort
reverse()函数:将数组进行翻转
int a[3]={8,4,6,2};
bool cmp(int a,int b)
{
return a>b; //从大到小排序
}
int main()
{
sort(a,a+4); // 2 4 6 8
reverse(a,a+4); //8 6 4 2
sort(a,a+4,greater<int>());
sort(a,a+4,cmp); // 8 6 4 2 时间复杂度:O(nlogn)
}
4.memset
#include<>
#include<algorithm>
int a[3];
int main()
{
//常用的三个初始化
memset(a,-1,sizeof a); // 初始化为-1
memset(a,0x3f,sizeof a); //初始化一个比较大的数
memset(a,0,sizeof a);//初始化为0
}
并不是一个简单的初始化,而是在字节层面上的一个初始化,有兴趣的话可以自己在编译器里试一下。
以上内容如有不当之处,欢迎大家指出和交流。