随笔分类 - c++
strcpy和memcpy
摘要:非常经典的 C 语言面试题 ✅ strcpy 和 memcpy 虽然都是“拷贝数据”的函数,但它们的用途、拷贝单位、终止条件、适用场景完全不同。下面是详细对比。 🧠 一、函数原型与定义 // 头文件:<string.h> char *strcpy(char *dest, const char *s
阅读全文
类、对象、成员变量、成员函数
摘要:要理解类的对象、成员函数、成员变量(包括const和static修饰的)之间的关系,我们可以从“类是模板,对象是实例”这个核心点展开,逐步分析它们的关联和区别。 一、基础概念:类、对象、成员变量、成员函数 类(Class):是一个“模板”或“蓝图”,定义了一组属性(成员变量) 和行为(成员函数)。比
阅读全文
差分数组
摘要:差分数组是一种用于高效处理区间更新和区间查询的数据结构,特别称为差分序列。它的核心思想是通过记录数组元素之间的差值,将多次次区间更新操作优化为常数时间操作,非常适合处理频繁的区间增减问题。 差分数组的基本原理 假设有一个原始数组 arr,我们定义其差分数组 diff 如下: diff[0] = ar
阅读全文
结构体和类中的构造函数
摘要:结构体默认public与类默认private 意义 在C++中,构造函数(Constructor)是一种特殊的成员函数,用于初始化对象的状态。其核心意义在于确保对象在创建时处于有效且一致的状态,避免使用未初始化的成员变量。以下从多个维度解析构造函数的意义: 一、初始化成员变量 构造函数的首要任务是初
阅读全文
字符串常量与字符数组
摘要:Suppose running on Linux, which one is the correct output of following code (C) #include <stdio.h> void test1(void) { char* my_array = "abc"; my_array
阅读全文
std::function
摘要:要理解C++中的回调特性、std::function和智能指针的用处,我们可以从“解决实际开发中的痛点”出发,结合具体场景一步步分析。这些特性的核心意义是让代码更灵活、更安全、更易维护,下面我们逐个拆解: 一、回调特性:解决“不知道未来要执行什么函数”的问题 痛点场景: 假设你在写一个按钮控件(比如
阅读全文
智能指针
摘要:三、智能指针:自动管理动态内存,避免内存泄漏 痛点场景: C++中用new动态分配内存后,必须用delete手动释放,否则会导致内存泄漏。实际开发中,很容易因忘记delete、异常导致delete未执行、或重复delete而崩溃。 什么是智能指针? 智能指针是封装了原始指针的类,它通过RAII(资源
阅读全文
lambda表达式
摘要:Lambda表达式是C++11引入的匿名函数特性,它允许在代码中“就地定义”简短的函数,无需单独声明。这种“即写即用”的特性让代码更简洁、更灵活,尤其在回调、算法参数等场景中非常实用。 一、Lambda表达式的基本语法 Lambda的核心结构是: [capture-list](parameters)
阅读全文
回调
摘要:回调是一种函数调用机制,允许将函数作为参数传递给其他函数,在特定事件发生时被调用。C++ 实现回调主要有以下几种方式: 1.函数指针 2.函数functor 3.lamda 回调特性:解决 “不知道未来要执行什么函数” 的问题 相当于实现一个组件,用于提前实现,而不知道后具体会用于什么场景。 基础回
阅读全文
模板template
摘要:https://github.com/Blitzer207/C-Resource/blob/master/第5阶段-C%2B%2B提高编程资料/提高编程能力资料/讲义/C%2B%2B提高编程.md 函数模板 template <typename T> void myFunction(T param)
阅读全文
cpp
摘要:函数的分文件编写 作用:让代码结构更加清晰 函数分文件编写一般有4个步骤 创建后缀名为.h的头文件 创建后缀名为.cpp的源文件 在头文件中写函数的声明 在源文件中写函数的定义 指针和函数 作用:利用指针作函数参数,可以修改实参的值 示例: //值传递 void swap1(int a ,int b
阅读全文
浙公网安备 33010602011771号