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

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. 基础语法 变量和数据类型&#xff1a; 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虚拟机)垃圾回收机制 —— 垃圾回收算法

文章目录 垃圾回收机制垃圾判断算法引用计数法可达性分析算法虚拟机栈中的引用&#xff08;方法的参数、局部变量等&#xff09;本地方法栈中 JNI 的引用类静态变量运行时常量池中的常量 垃圾收集算法Mark-Sweep&#xff08;标记-清除&#xff09;算法Copying&#xff08;标记-…...

苍穹外卖Day01-2

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

软考中级软件设计师——数据结构与算法基础学习笔记

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

虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(中)

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

整流电路的有源逆变工作状态

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

Android 签名、空包签名 、jarsigner、apksigner

jarsigner是JDK提供的针对jar包签名的通用工具, 位于JDK/bin/jarsigner.exe apksigner是Google官方提供的针对Android apk签名及验证的专用工具, 位于Android SDK/build-tools/SDK版本/apksigner.bat jarsigner&#xff1a; jarsigner签名空包执行的命令&#xff1a; jar…...

java基础(小技巧)

文章目录 一、日志输出二、字符串拼接三、日期比较四、常用注解五、Lombok的原理 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、日志输出 之前使用的方式。在要使用的类里面定义日志类&#xff1a; private static Logger logger LoggerFactory…...

Android Studio 安装配置教程(Windows最详细版)

目录 前言 Android Studio 下载 Android Studio 安装 Android Studio 使用 一、创建默认项目&#xff08;Compose&#xff09; 二、创建常规项目 三、使用ViewBinding 四、查看Gradle版本、SDK版本、JDK版本 ① Gradle版本 ② SDK版本 ③ JDK版本 前言 Android开发…...

Cesium绘制可编辑线

Cesium 第一章 绘制可编辑线 Screen-2024-09-17-202059的副本 文章目录 Cesium一、绘制线二、编辑线三、使用 一、绘制线 1、方法 //场景相机控制viewer.scene.screenSpaceCameraController.enableRotate false; //cesium相机控制 绘制和编辑时 禁止转动场景// 鼠标样式修改…...

【算法】差分思想:强大的算法技巧

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…...

微软开源项目 Detours 详细介绍与使用实例分享

目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C++软件异常排查从入门到精通系列教程…...

Numba基础

1. Numba 基础 1.1 什么是 Numba&#xff1f; Numba 是一个 JIT 编译器&#xff0c;用于加速数值计算。它通过即时编译技术&#xff0c;将 Python 代码在运行时编译为机器代码&#xff0c;极大地提升执行速度&#xff0c;特别适合循环和矩阵操作等密集型计算。 2. Numba 基本…...

[JAVA]介绍怎样在Java中通过字节字符流实现文件读取与写入

一&#xff0c;初识File类及其常用方法 File类是java.io包下代表与平台无关的文件和目录&#xff0c;程序中操作文件和目录&#xff0c;都可以通过File类来完成。 通过这个File对象&#xff0c;可以进行一系列与文件相关的操作&#xff0c;比如判断文件是否存在&#xff0c;获…...

oracle停止当前运行的JOB或kill会话

在Oracle中&#xff0c;可以使用DBA_SCHEDULER_JOBS视图来查找当前正在运行的作业&#xff08;job&#xff09;&#xff0c;并使用DBMS_SCHEDULER.STOP_JOB过程来停止它们 SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE STATE RUNNING; SELECT * FROM DBA_SCHEDULE…...

SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue

介绍 在默认情况下&#xff0c;RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟 一旦MO宕机&#xff0c;内存中的消息会丢失内存空间有限&#xff0c;当消费者故障或处理过慢时&#xff0c;会导致消息积压&#xff0c;引发MQ阻塞 在消息队列运行的过程中&#xf…...

CLIP论文中关键信息记录

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

sshj使用代理连接服务器

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

【Leetcode:1184. 公交站间的距离 + 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

VRRP 笔记

一、概念&#xff1a; vrrp&#xff1a;Virtual Router Redundancy Protocol 虚拟路由冗余协议&#xff0c;当网关发生故障时&#xff0c;进行主备切换&#xff0c;保证业务连续性 把多台物理机的网关虚拟成一台Virtual Router&#xff0c;称为 VRID VIP&#xff1a;虚拟IP VM…...

批量加密RAR文件超简单!WinRAR自动加密技巧

Rar压缩包是大家经常使用的文件&#xff0c;并且可以进行加密&#xff0c;也是一种文件加密方式&#xff0c;那么当你有很多文件都需要压缩加密&#xff0c;按照正常加密方法来说&#xff0c;我们需要重复操作多次才能实现。其实我们可以使用自动加密功能来完成批量加密。 不过…...

PasteMD效果展示:3秒将ChatGPT对话转换为规范技术报告

PasteMD效果展示&#xff1a;3秒将ChatGPT对话转换为规范技术报告 1. 为什么你需要这个工具 你有没有过这样的经历&#xff1a;在ChatGPT里反复调试出一段完美的技术方案&#xff0c;复制粘贴到Word文档时却变成一团乱码&#xff1f;公式显示成一串LaTeX代码&#xff0c;表格错…...

forkrun:革新数据处理,突破传统并行工具性能瓶颈

【导语&#xff1a;forkrun 作为一款自调优工具&#xff0c;可直接替代 GNU Parallel 和 xargs -P。它在现代 CPU 上能显著提升基于 Shell 的数据准备速度&#xff0c;尤其在 NUMA 架构上表现出色&#xff0c;为数据处理领域带来了新的变革。】数据处理速度的飞跃&#xff1a;5…...

Linux打印机驱动foo2zjs全攻略:从安装到优化的完整指南

Linux打印机驱动foo2zjs全攻略&#xff1a;从安装到优化的完整指南 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 价值定位&#xff1a;解决Linux打印…...

华三中小型企业二层组网配置案例一(单ISP+单链路)

1. 组网拓扑某企业内部共划分 4 个业务部门&#xff0c;为实现部门间网络隔离与安全访问控制&#xff0c;分别规划独立网段&#xff1a;192.168.10.0/24、192.168.20.0/24、192.168.30.0/24、192.168.40.0/24。核心交换机作为三层网关&#xff0c;配置各网段 VLANIF 接口地址&a…...

5分钟上手Godot 4.0地形系统:用AutoTile实现像素风草地自动拼接(含Layer新功能演示)

5分钟掌握Godot 4.0地形系统&#xff1a;用AutoTile实现像素风无缝拼接 在像素风格游戏开发中&#xff0c;地形拼接一直是让开发者头疼的问题——如何让草地、石块、沙土等元素自然过渡&#xff1f;传统方案往往需要手动放置大量图块或编写复杂逻辑。Godot 4.0的TileMap系统带来…...

WarcraftHelper:让经典魔兽争霸III在现代电脑上焕发新生的全能助手

WarcraftHelper&#xff1a;让经典魔兽争霸III在现代电脑上焕发新生的全能助手 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在宽…...

快速体验:Python3.8镜像开箱即用,无需配置直接写代码

快速体验&#xff1a;Python3.8镜像开箱即用&#xff0c;无需配置直接写代码 1. Python3.8镜像简介 Python作为当下最流行的编程语言之一&#xff0c;其3.8版本在性能优化和功能完善方面达到了一个成熟稳定的阶段。这个预配置好的Python3.8镜像&#xff0c;让你可以完全跳过繁…...

信创协同办公价格与成本:这样选,性价比直接拉满!

“一套信创协同办公到底多少钱&#xff1f;”“是按人头收费&#xff0c;还是按项目打包算&#xff1f;”“前期买着便宜&#xff0c;后期维护会不会无底洞&#xff1f;”不管是政企单位采购&#xff0c;还是企业选型&#xff0c;这三个问题几乎是所有人的核心顾虑。毕竟信创办…...

如何将笔记从 iCloud 传输到 iPhone:分步指南

iPhone 上的“备忘录”应用是一款便捷的工具&#xff0c;可以用来记录待办事项、日记、想法等等。它能帮助我们追踪需要完成的事情。借助 iCloud 的自动同步功能&#xff0c;你的备忘录可以安全地存储在云端&#xff0c;并可通过任何 Apple 设备甚至电脑访问。将笔记从 iPhone …...