写程序的易错点(不定期更新)

  1. 忘记开-Wshadow,导致有变量重复,容易出错。实例:

    1 int t;
    2 ……
    3 if (……){
    4     int t=……;
    5 } else {
    6     t=……;
    7 }
  2. 对图进行宽度优先遍历时,visit数组加错位置。

    while (!q.empty()){
            nownode=q.front();
            nowedge=first[nownode]; //mark
            while (nowedge){
                nowson=edges[nowedge].to;
                if (visit[nowson]) continue; //如果这个语句加在前面,可能会造成一个元素进队多次,导致……TLE。
                if (......){
                    visit[nowson]=1;
                    q.push(nowson);
                }
                nowedge=edges[nowedge].next;
            }
    }

    【未完待续】

时间: 2024-11-05 06:29:17

写程序的易错点(不定期更新)的相关文章

关于在使用sparksql写程序是报错以及解决方案:org.apache.spark.sql.AnalysisException: Duplicate column(s): "name" found, cannot save to file.

说明: spark --version : 2.2.0 我有两个json文件,分别是emp和dept: emp内容如下: {"name": "zhangsan", "age": 26, "depId": 1, "gender": "male", "salary": 20000} {"name": "lisi", "ag

程序员书单 (不定期更新)

HTTP权威指南 TCP/IP详解 图解TCP/IP 图解HTTP Head First 设计模式 白帽子讲 WEB 安全 前端开发基础知识 高性能WEB应用设计

关于Verilog HDL的一些技巧、易错、易忘点(不定期更新)

本文记录一些关于Verilog HDL的一些技巧.易错.易忘点等(主要是语法上),一方面是方便自己忘记语法时进行查阅翻看,另一方面是分享给大家,如果有错的话,希望大家能够评论指出. 关键词: ·技巧篇: 组合逻辑输出类型选择; 语法上的变量交换; ·易忘篇: case/casex/casez语句; 循环语句: 数制和操作符: 数据类型: ·易错: 技巧篇: 1.组合逻辑输出:描述一个纯组合逻辑电路时,尽量不要把输出定义成输出类型,例如描述下面的电路: 1 module mux #(paramet

黑马程序员---C基础3【变量的易错】【程序结构】【if语句】【Switch语句】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [变量的易错] 1.变量为什么要初始化为0 int  sum,a=3: sum = sum+a 如果未初始化则会成为一个不确定的变量,结果也会不确定,容易出错. 2.不同类型的变量之间的转换 切记int  a=1,b=0:b=1-1.5:其中b为一个整型所有结果是保留整数部分的0,而不是-0.5,又因为0没有正负之分,所有保存结果为b=0: 3.关于Xcode的一个快速注释的插件 快捷键://

软考程序员新手易错笔记

1.●标准化对象一般可分为两大类:一类是标准化的具体对象,即需要制定标准的具体事物:另一类是  (4)  ,即各种具体对象的总和所构成的整体,通过它可以研究各种具体对象的共同属性.本质和普遍规律. (4) A.标准化抽象对象    B.标准化总体对象    C.标准化虚拟对象    D.标准化面向对象 [解析]:标准化对象一般可分为两类:一类是标准化的具体对象:另一类是标准化的总体对象. 2.●用二进制加法器对二-十进制编码的十进制数求和,当和大于1010时,  (5)  . (5) A.不需要

Javascript易错知识点

? JS易错知识点总结: == 和 === 的区别: ==:判断两个变量的值是否相等. ===:判断两个变量的类型和值是否都相等,两个条件同时满足时,表达式为True. switch中break的作用: 如果一个case后面的语句,没有写break,那么程序会向下执行,而不会退出: 例如:当满足条件的case 2下面没有break时,case 3也会执行 1 var num = 2; 2 switch(num){ 3 case 1: 4 alert('case 1'); 5 break; 6 c

细节!重点!易错点!--面试java基础篇(一)

今天来给大家分享一下java的重点易错点部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.java中的main方法是静态方法,即方法中的代码是存储在静态存储区的. 2.任何静态代码块都会在main方法之前执行. 3.java程序的初始化顺序:原则:静态优先于非静态,且只初始化一次:父类优先于子类:按照成员定义顺序初始化.例顺序:父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,父类非静态变量,父类非静态代码块,父类构造函数,子类非静态变量,子类非静态代码块,子类构造函数. 4.

POJ3273 MonthlyExpense 【裸二分但易错】

详见blog.csdn.net/lyy289065406/article/details/6648554,也就一简单的很裸的二分... 以前看到一句话,90%的程序员会写错二分程序,果不其然,虽然前面二分都写对了,但这个确实卡了一下,还好去洗个澡回来就想出来了,哇哈哈哈 这个要注意,在L<R-1的时候就应该终止二分循环,然后手动选择答案(也就是说有时候二分最后一步需要自己手动选择答案) #include <iostream> #include <cstdio> #includ

指针重难、易错点

(一)函数指针 在前边的blog中,已经整理归纳了数组和初级指针,接下来,我来继续整理高级指针和如何正确使用指针. 我们说过,指针数组是一个数组,每个元素是指针:数组指针是个指针,指向的是数组.所以: 函数指针就是指向函数的指针.我们先看以下代码: <pre name="code" class="cpp">void fun() { } int main() { printf("%p",fun); printf("%p&quo