编程中的一些注意点汇总

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);// 这样才是正确的

以上是关于编程中的一些注意点汇总的主要内容,如果未能解决你的问题,请参考以下文章

C# :异步编程的注意点

使用 Git 来管理 Xcode 中的代码片段

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

Java编程常见问题汇总

MindManager鱼骨图分析法注意点汇总