快速的输入输出:
cin比getchar确实是慢很多,所以一些还算程序运行时间的排名的oj比赛,可以用getchar输入节约时间来刷排名。
快速输入:
inline int read()
{
int k=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){k=k*10+ch-'0';ch=getchar();}
return k*f;
}
当然,有快读就有快速输出。
inline void write(int x)
{
if(x<0)x=-x,putchar('-');
if(x>9)write(x/10);putchar(x%10+'0');
}
用sprintf-sscanf节约大量的代码
如和把一个数字a转换为一个字符串?用循环取模在倒置?不如试试sprintf?
需要添加头文件#include<cstdio>
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
cin>>n;
char s[100];
sprintf(s,"%d",n);
cout<<s<<endl;
return 0;
}
整体写法与printf相似,就是有了三个参数,第一个为目标字符串的地址。
当然,还可以很轻松的把字符串转换成数字。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
char s[20]="1000";
sscanf(s,"%d",&n);
cout<<n<<endl;
return 0;
}
SORT-“通用排序”
头文件:#include<algorithm>
理论上这个库里有很多有用的高级科技
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int i;
int a[100];
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=0;
for(i=0;i<=3;i++)
cout<<a[i]<<" ";
cout<<endl;
sort(a,a+3);
for(i=0;i<=3;i++)
cout<<a[i]<<" ";
return 0;
}
注意:上面这段代码sort(a,a+3) 3指的是三个元素,为a[0]、a[1]、a[2]。这个地方比较容易弄混!!!
默认情况下从小到大。
至于进阶操作,会在下一篇文章中写到。