C++知识点示例代码助记
C++语言设计期末知识点附示例代码。
1. 基础语法
-
变量和数据类型:
int a = 10; // 整型 float b = 5.25f; // 单精度浮点型 double c = 5.25; // 双精度浮点型 char d = 'A'; // 字符型 bool e = true; // 布尔型 const int PI = 3.14; // 常量
-
输入输出:
#include <iostream> using namespace std;int main() {int num;cout << "Enter a number: ";cin >> num;cout << "You entered: " << num << endl;return 0; }
2. 流程控制
-
条件语句:
if (a > b) {cout << "a is greater than b"; } else if (a == b) {cout << "a is equal to b"; } else {cout << "a is less than b"; }switch (a) {case 1: cout << "a is 1"; break;case 2: cout << "a is 2"; break;default: cout << "a is neither 1 nor 2"; }
-
循环语句:
// for loop for (int i = 0; i < 5; ++i) {cout << i << " "; }// while loop int i = 0; while (i < 5) {cout << i << " ";++i; }// do-while loop int j = 0; do {cout << j << " ";++j; } while (j < 5);
3. 函数
-
函数定义与声明:
int add(int a, int b); // 函数声明int main() {cout << add(5, 3); // 调用函数return 0; }int add(int a, int b) { // 函数定义return a + b; }
-
函数重载:
int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; }int main() {cout << add(5, 3) << endl; // 调用 int 版本cout << add(5.0, 3.0) << endl; // 调用 double 版本return 0; }
-
递归:
int factorial(int n) {if (n == 1) return 1;return n * factorial(n - 1); }int main() {cout << factorial(5); // 输出 120return 0; }
4. 数组和指针
-
数组:
int arr[5] = {1, 2, 3, 4, 5}; // 一维数组for (int i = 0; i < 5; ++i) {cout << arr[i] << " "; }int arr2D[2][3] = {{1, 2, 3}, {4, 5, 6}}; // 二维数组
-
指针:
int var = 10; int *ptr = &var; // 指针指向变量的地址cout << "Value of var: " << *ptr << endl; // 输出指针指向的值
-
动态内存分配:
int *p = new int[5]; // 动态分配一个长度为 5 的整数数组 delete[] p; // 释放内存
5. 面向对象编程(OOP)
-
类与对象:
class Person { private:string name;int age;public:// 构造函数Person(string n, int a) : name(n), age(a) {}void display() {cout << "Name: " << name << ", Age: " << age << endl;} };int main() {Person p("John", 25);p.display();return 0; }
-
继承:
class Animal { public:void eat() { cout << "Animal is eating" << endl; } };class Dog : public Animal { // 公有继承 public:void bark() { cout << "Dog is barking" << endl; } };int main() {Dog d;d.eat(); // 基类的方法d.bark(); // 派生类的方法return 0; }
-
多态性:
class Animal { public:virtual void sound() { cout << "Some animal sound" << endl; } };class Dog : public Animal { public:void sound() override { cout << "Bark" << endl; } };int main() {Animal* a = new Dog();a->sound(); // 输出 "Bark"delete a;return 0; }
6. 运算符重载
- 加法运算符重载:
class Complex { private:int real, imag;public:Complex(int r = 0, int i = 0) : real(r), imag(i) {}Complex operator + (const Complex& obj) {Complex temp;temp.real = real + obj.real;temp.imag = imag + obj.imag;return temp;}void display() { cout << real << " + i" << imag << endl; } };int main() {Complex c1(5, 3), c2(2, 4);Complex c3 = c1 + c2;c3.display(); // 输出 "7 + i7"return 0; }
7. 标准模板库(STL)
- vector 使用:
#include <iostream> #include <vector> using namespace std;int main() {vector<int> vec = {1, 2, 3, 4, 5};vec.push_back(6); // 添加元素for (int i : vec) {cout << i << " "; // 遍历 vector}return 0; }
8. 异常处理
- 异常捕获:
#include <iostream> using namespace std;int main() {try {int age = -1;if (age < 0) {throw "Invalid age!";}} catch (const char* msg) {cout << "Error: " << msg << endl;}return 0; }
9. 文件操作
- 文件读写:
#include <iostream> #include <fstream> using namespace std;int main() {// 写入文件ofstream outFile("example.txt");outFile << "Hello, World!" << endl;outFile.close();// 从文件读取string line;ifstream inFile("example.txt");if (inFile.is_open()) {while (getline(inFile, line)) {cout << line << endl;}inFile.close();}return 0; }
10. 预处理器与宏
- 宏与条件编译:
#define PI 3.14#include <iostream> using namespace std;int main() {cout << "PI is: " << PI << endl;return 0; }#ifdef DEBUGcout << "Debug mode" << endl; #endif
11. 名字空间(namespace)
- 使用名字空间:
#include <iostream> using namespace std;namespace myNamespace {int x = 10; }int main() {cout << myNamespace::x << endl;return 0; }
12. 动态内存管理
- 智能指针:
#include <iostream> #include <memory> using namespace std;int main() {shared_ptr<int> p1 = make_shared<int>(10);cout << *p1 << endl;return 0;}
相关文章:
C++知识点示例代码助记
C语言设计期末知识点附示例代码。 1. 基础语法 变量和数据类型: int a 10; // 整型 float b 5.25f; // 单精度浮点型 double c 5.25; // 双精度浮点型 char d A; // 字符型 bool e true; // 布尔型 const int PI 3.14; // 常量输入输出&…...

Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 垃圾回收算法
文章目录 垃圾回收机制垃圾判断算法引用计数法可达性分析算法虚拟机栈中的引用(方法的参数、局部变量等)本地方法栈中 JNI 的引用类静态变量运行时常量池中的常量 垃圾收集算法Mark-Sweep(标记-清除)算法Copying(标记-…...

苍穹外卖Day01-2
导入接口文档 yApi接口管理平台http://api.doc.jiyou-tech.com/ 创建项目 导入接口文件 导入结果界面 Swagger 介绍 使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。 官网:ht…...

软考中级软件设计师——数据结构与算法基础学习笔记
软考中级软件设计师——数据结构与算法基本概念 什么是数据数据元素、数据项数据结构逻辑结构物理结构(存储结构) 算法什么是算法五个特性算法效率的度量时间复杂度空间复杂度 什么是数据 数据是信息的载体,是描述客观事物属性的数、字符及所…...

虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(中)
虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天-CSDN博客 上篇偏重实现步骤,中篇偏重理解校准和降低延迟,下篇加入上下文背景array和设置口音 TTS通用参数 ————————————————————————————————————…...

整流电路的有源逆变工作状态
目录 1. 逆变的概念 2. 有源逆变的条件 3. 电流电路的概念 4. 产生逆变的条件 5. 三相桥式全控整流电路的有源逆变工作状态 6. 逆变角的概念 7. 逆变失败的原因 8. 最小逆变角的限制 整流电路的有源逆变状态是指通过控制整流器,使其将直流电源的能量反向送回…...

Android 签名、空包签名 、jarsigner、apksigner
jarsigner是JDK提供的针对jar包签名的通用工具, 位于JDK/bin/jarsigner.exe apksigner是Google官方提供的针对Android apk签名及验证的专用工具, 位于Android SDK/build-tools/SDK版本/apksigner.bat jarsigner: jarsigner签名空包执行的命令: jar…...
java基础(小技巧)
文章目录 一、日志输出二、字符串拼接三、日期比较四、常用注解五、Lombok的原理 提示:以下是本篇文章正文内容,下面案例可供参考 一、日志输出 之前使用的方式。在要使用的类里面定义日志类: private static Logger logger LoggerFactory…...

Android Studio 安装配置教程(Windows最详细版)
目录 前言 Android Studio 下载 Android Studio 安装 Android Studio 使用 一、创建默认项目(Compose) 二、创建常规项目 三、使用ViewBinding 四、查看Gradle版本、SDK版本、JDK版本 ① Gradle版本 ② SDK版本 ③ JDK版本 前言 Android开发…...
Cesium绘制可编辑线
Cesium 第一章 绘制可编辑线 Screen-2024-09-17-202059的副本 文章目录 Cesium一、绘制线二、编辑线三、使用 一、绘制线 1、方法 //场景相机控制viewer.scene.screenSpaceCameraController.enableRotate false; //cesium相机控制 绘制和编辑时 禁止转动场景// 鼠标样式修改…...

【算法】差分思想:强大的算法技巧
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...

微软开源项目 Detours 详细介绍与使用实例分享
目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C++软件异常排查从入门到精通系列教程…...
Numba基础
1. Numba 基础 1.1 什么是 Numba? Numba 是一个 JIT 编译器,用于加速数值计算。它通过即时编译技术,将 Python 代码在运行时编译为机器代码,极大地提升执行速度,特别适合循环和矩阵操作等密集型计算。 2. Numba 基本…...

[JAVA]介绍怎样在Java中通过字节字符流实现文件读取与写入
一,初识File类及其常用方法 File类是java.io包下代表与平台无关的文件和目录,程序中操作文件和目录,都可以通过File类来完成。 通过这个File对象,可以进行一系列与文件相关的操作,比如判断文件是否存在,获…...
oracle停止当前运行的JOB或kill会话
在Oracle中,可以使用DBA_SCHEDULER_JOBS视图来查找当前正在运行的作业(job),并使用DBMS_SCHEDULER.STOP_JOB过程来停止它们 SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE STATE RUNNING; SELECT * FROM DBA_SCHEDULE…...

SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
介绍 在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟 一旦MO宕机,内存中的消息会丢失内存空间有限,当消费者故障或处理过慢时,会导致消息积压,引发MQ阻塞 在消息队列运行的过程中…...

CLIP论文中关键信息记录
由于clip论文过长,一直无法完整的阅读该论文,故而抽取论文中的关键信息进行记录。主要记录clip是如何实现的的(提出背景、训练数据、设计模式、训练超参数、prompt的作用),clip的能力(clip的模型版本、clip…...

sshj使用代理连接服务器
之前我是用jsch连接服务器的,但是没办法使用私钥连接,搜了一下似乎是不支持新版的SSH-rsa,并且jsch很久没更新了,java - "com.jcraft.jsch.JSchException: Auth fail" with working passwords - Stack Overflow 没办法…...

【Leetcode:1184. 公交站间的距离 + 模拟】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
VRRP 笔记
一、概念: vrrp:Virtual Router Redundancy Protocol 虚拟路由冗余协议,当网关发生故障时,进行主备切换,保证业务连续性 把多台物理机的网关虚拟成一台Virtual Router,称为 VRID VIP:虚拟IP VM…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...