编程中的一些注意点汇总
Posted elaine-dwl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程中的一些注意点汇总相关的知识,希望对你有一定的参考价值。
目录
因为时间问题,暂时只做简单记录,有时间的话部分内容将写具体的博文详细分析。
while控制数据的接收
while(scanf(%d, &a)!=EOF)
不断输入测试数据,直到遇见结束符(ctrl + z),类似的还有while(gets(str))等
scanf的妙用
scanf("%4d%2d%2d", &y, &m, &d);
输入年月日 自动复制 如19970103
全局变量
如果需要开辟大量的内存空间,必须定义为全局变量,或者使用malloc动态申请变量空间/
比如说需要定义一个大数组,如果直接在main中定义,那么函数所使用的栈空间将不足以提供如此庞大的内存,会出现栈溢出,导致程序异常终止。
哈希表
当键都是普通的正整数时,可以使用数组来构建哈希表;
也可以使用map/unordered_map来构建。
优先队列实现大顶堆和小顶堆
优先队列实现大顶堆:
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大顶堆
vector容器中没有find函数
vector<int> v;
v.find();//注意!!!!不能这样用find!!
find(v.begin(), v.end(), 2);// 这样才是正确的
以上是关于编程中的一些注意点汇总的主要内容,如果未能解决你的问题,请参考以下文章