一些小的编程技巧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些小的编程技巧相关的知识,希望对你有一定的参考价值。
1.while
while(scanf("%d",&a)!=EOF)
不断输入测试数据,知道遇见结束符 类似的还有 while(gets(str)) 等
2. scanf的妙用
scanf("%4d%2d%2d",&y,&m,&d);
输入年月日 自动复制 如19970103
3. 全局变量
如果需要开辟大量的内存空间,必需定义为全局变量,或者使用malloc动态申请变量空间。
比如说需要定义一个大数组,如果直接在main中定义,那么函数所使用的栈空间将不足以提供如此庞大的内存,出现栈溢出,导致程序异常终止。
4. Hash
尽量使用hash表,hash数组,把程序中多次要用到的数据,先计算一遍 再记录起来,下次再用的时候只需要查表就可以了。
5. 优先队列实现小顶堆or大顶堆
优先队列实现大顶堆 :
priority_queue<int> Q
小顶堆:
priority_queue<int,vector<int>,greater<int> > Q
对堆的有关操作:
Q.push(x);//将元素x放入堆Q中 int a=Q.top();//将堆顶元素的值赋值给a,但是并不弹出堆顶元素 Q.pop();//弹出堆顶元素,取出后堆会自动调整为一个新的小顶堆or大顶堆
以上是关于一些小的编程技巧的主要内容,如果未能解决你的问题,请参考以下文章