当前位置: 首页 > news >正文

CC++ 常用技巧

C++ 中的C

  • C 是面向过程的是把整个大程序分为一个个的子函数;
  • C++ 是面向对象的是把整个程序划分为一个个的类。
  • C++ 是完全兼容C 的,C 是C++ 的子集,C++ 是C 的超集。C++ 又对C 做了很多补充和提升,因此使用C++ 会比使用纯C 更方便。
  • 混用C和C++:用C++ 写函数(可能会使用几个现成类),但并没有自己定义类,因此还是在面向过程的范畴内编程。

C++ 的头文件

  • C 的头文件都是以.h结尾的,如stdio.h、string.h。
  • C++ 的头文件分为两类(都没有后缀.h)
    继承自C 的头文件:去掉.h在前面加c,如cstdio、cstring。
    C++ 特有的头文件:如iostream、string。
  • 使用C++ 特有的头文件需在代码开头声明名称空间using namespace std;

常量:const vs define

  • 严格意义上讲C中是没有常量的概念的,所谓的#define N 100只是一种不加任何检查的文本替换C++ 中用关键字const定义常量如const int N = 1010;。
  • 用const的定义的常量是有明确的数据类型的,在程序中可以进行类型检查和转换,更严谨,更规范。
  • 最常用的两个常量
    定义最大数据范围:const int N = 1e3 + 10;
    定义无穷大: const int INF = x3f3f3f3f;

代码模板

 

常见输入输出模式

文件输入

  • 当数据量大且需要多次调试时,每次手工输入或者数据或者复制粘贴效率太低。
  • 可以把输入数据放在同目录下一个文本文件in.txt中,每次程序执行时自动从文件中读取数据。

 

 

EOF 是什么(End of File)

  • EOF 就是-1: #define EOF -1

  • 在输入文件最后的一个不可见字符,占一个字节,ASCII 码为-1,二进制为11111111
    原码1000 0001 -> 反码11111 1110 ->补码1111 1111

 

 

多Case 输入(多个测试用例一起输入)

指定用例组数,需要输出用例序号

 

指定用例组数,不需要输出用例序号

 

不指定用例组数,有结束标记

 

 

不指定用例组数,无结束标记

 

数组大小的问题

全局变量在静态存储区分配内存,局部变量在栈上分配内存。程序运行时会动态创建一个堆栈段,里面存放着调用栈,保存着函数的调用关系和局部变量。如果函数内的数组太大,可能会造成栈溢出。

  • 大数组最好开成全局变量。
  • 或者动态分配内容

数字的大小问题

高精度加法/减法

加法核心代码:

 减法同理,注意a和b之间的大小关系

 

http://www.lryc.cn/news/138981.html

相关文章:

  • 【AndroidStudio】屏蔽小米打印
  • Tomcat的安装与介绍
  • 说点大实话丨知名技术博主 Kirito 测评云原生网关
  • 时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测
  • 简述docker的网络模式
  • MySql-8.0.34 CentOS 安装命令记录
  • 开发电子木鱼功德+1需要多少钱
  • 批处理中扩展解释%~的相关知识和用法,并给出示例和实际运行结果展示
  • LA@向量组间的表示关系
  • Mybatis与Spring集成
  • AMBA总线协议(0)——目录与传送门
  • R语言快速生成三线表(1)
  • 【动手学深度学习】--20.目标检测和边界框
  • 实验八 网卡驱动移植
  • Linux的Man Page知识记录
  • RTSP/Onvif视频服务器EasyNVR安防视频云服务调用接口录像会被自动删除的问题解决方案
  • 几个nlp的小项目(文本分类)
  • MFC——base编码和json数据
  • SQL Server、MySQL和Oracle数据库分页查询的区别与联系
  • Qt跨平台无边框窗口探索记录
  • 概念解析 | 电磁计算的新篇章:智能电磁计算
  • SpringBoot-1-Spring Boot实战:快速搭建你的第一个应用,以及了解原理
  • Web服务器基础 http协议
  • 采用 SVG 实现 web 绘图软件的技术分享
  • Qt --- QTimer
  • 计算机终端核心安全配置规范
  • 【Spring Boot】什么是深度优先遍历与广度优先遍历?用Spring Boot项目举例说明。
  • MetaMask Mobile +Chrome DevTools 调试Web3应用教程
  • 栈和队列OJ题
  • 36k字从Attention讲解Transformer及其在Vision中的应用(pytorch版)