• 一些经验


    1. C++中,运算符顺序比起Pascal有些奇葩,位运算符是在加减之后的;除<<、>>外,位运算符是在比较运算符后的。要注意,不然随时被坑。运算符顺序
    2. C++中,定义指针变量时,每个都要在前面打上*,不然会有编译错误。
    3. C++中用数组传参只是传递指针,Pascal是整个传递。要是在Pascal中用函数打高精度会很恶心。
    4. C++自带的东西总会比手打慢,但就是好用。
    5. 打高精度时:
      1. 每个运算用函数代替,最好重载运算符。有的人直接将高精度嵌进主程序里,太丑。打正常函数也太丑,重载运算符好看。
      2. 打重载运算符时,最好重载+=、-=、*=、/=等,不然会多一个O(高精度类型大小)的赋值操作。
      3. 养成压位的好习惯,尽量将位压多。
      4. 打压位高精度输出时,用不着判断前导0,因为printf中”%0md”(”%0mlld”)表示输出m位,不够的位补0。
    6. 在C++中,可以用自带的排序、堆、平衡树、bitset,但是不要常用自带队列、栈,因为它们本身很好打,用了之后还会慢(动态开空间,虽然说平衡树也是,但平衡树难打)。
    7. 队列尽量不开循环,会比普通的慢一些(有一题我就将循环队列开成普通队列就AC了)。如果开循环,有些人的head和tail每加一个就模一次。模的速度慢,建议改为and一个2^k-1的数。
    8. 对于一些题目,要多次用到bool数组,有的人每次都将其用memset清0。实际上这是很慢的。可以用整数代替,用那个整数加1代替清0操作。
    9. 普及一下memset,这实际上是以1B为一个单位填充。若填的是整型,则填127为0x7f7f7f7f(开头为0x表示是16进制)。
    10. C++中,常常一个不小心就有变量与头文件里的变量重了。如果那里有namespace还好运,不然就会编译错误,甚至本地不会提醒。所以建议在一些不确定的变量加前缀或后缀。
    11. 一些程序里尽量别用指针,虽然好看,但常常会RE。
    12. 尽量别用getchar()来读入,因为一些奇怪的原因,交上去有时是会错的。
    13. Dev-C++的bug太多了,比如说调试结构体数组。所以建议使用输出调试。
  • 相关阅读:
    Blink示例程序
    arduino入门笔记
    Opentrains 1519 G——最小圆覆盖
    最小圆覆盖入门
    最小球覆盖——模拟退火&&三分套三分套三分
    DAO,Service,Controller各层之间的关系
    史上最全的SpringMVC学习笔记
    pom.xml
    Tomcat入门指南
    tomcat架构
  • 原文地址:https://www.cnblogs.com/jz-597/p/11145311.html
Copyright © 2020-2023  润新知