首页 > 代码库 > 读入优化
读入优化
来自http://www.2cto.com/kf/201302/190586.html
在数据量特别大,比如需要输入或者输出1000万个整数的时候,scanf和printf就会变得非常慢,然而getchar和putchar函数很快,所以我们需要用其来优化读入与输出。
读入优化:
[cpp]
// 优化前读入1-10000000:3.176秒
// 优化后读入1-10000000:1.232秒
void scan( )
{
k = num = 0, bit = 1;
while( ( ch[++num] = getchar( ) ) != 32 );
num--;
while( num ) k += ( ch[num--]-48 )*bit, bit *= 10;
}
输出优化:
[cpp] www.2cto.com
// 优化前输出1-10000000:4.336秒
// 优化后输出1-10000000:1.897秒
void print( int k )
{
num = 0;
while( k > 0 ) ch[++num] = k % 10, k /= 10;
while( num )
putchar( ch[num--]+48 );
putchar( 32 );
}
来自http://blog.csdn.net/shifuwawa/article/details/5811397
把整个文件读入一个字符串最常用的方法是用fread,代码如下:
[cpp] view plain copy
- const int MAXN = 10000000;
- const int MAXS = 60*1024*1024;
- int numbers[MAXN];
- char buf[MAXS];
- void fread_analyse()
- {
- freopen("data.txt","rb",stdin);
- int len = fread(buf,1,MAXS,stdin);
- buf[len] = ‘/0‘;
- analyse(buf,len);
- }
读入优化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。