- 博客(17)
- 收藏
- 关注
原创 C++前置自增(自减)VS后置自增(自减)
当用于类对象(如迭代器)时,性能差异更明显:// 迭代器示例(伪代码)public:// 前置版本(高效)// 后置版本(低效,需构造副本)// 创建旧值副本++(*this);// 调用前置版本实现// 循环中推荐使用前置it!++it) { // 优先用 ++it// 比 it++ 节省临时对象构造开销。
2025-06-06 15:01:28
327
原创 C++ 可拷贝类型、可移动类型
char* data;public:// 深拷贝if (this!char* data;public:// 置空源对象,防止资源释放if (this!五大特殊成员函数:构造函数、析构函数、拷贝构造、拷贝赋值、移动构造、移动赋值(后两者是C++11新增)。三大法则(Rule of Three):若需自定义 析构函数、拷贝构造 或 拷贝赋值 中任意一个,通常需自定义全部三者(避免资源泄漏)。。
2025-06-05 11:28:51
733
原创 C++ explicit关键字
,仅在深思熟虑后对需要自然类型转换的类(如字符串)开放隐式转换权限。关键字用于声明构造函数或类型转换运算符,。:在单参数/多参数构造函数中。,避免产生歧义和错误。
2025-06-04 19:42:46
116
原创 C++函数指针
在C++中,是一种指向函数的指针变量,允许在运行时动态选择并调用不同的函数。它为代码提供了更高的灵活性和可扩展性,常用于回调机制、策略模式等场景。与数据项相似,函数也有地址。函数的地址是存储其机器语言代码的内存的开始地址,对于用户来说这些地址并不重要,但是对于程序来说非常有用。可以编写将另一个函数的地址作为参数的函数,这样第一个函数将能够找到第二个函数并且允许它。与直接调用另一个函数相比,这种方法很笨拙,但是允许在不同的时间传递不同的地址,这意味着可以在不同的时间使用不同的函数。在C++中,。
2025-05-21 17:39:40
400
原创 搜索引擎原理
根据一定的策略、运用特定的计算机程序从互联网搜索信息,在对信息进行组织和处理之后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
2025-05-18 16:24:33
392
原创 C++指针和自由存储空间
在计算机程序存储数据时必须要跟踪的3种基本属性:1、信息存储在何处 2、存储的信息是什么类型 3、存储的值是多少我们最常用的策略就是定义一个简单变量,例如int a=1,在声明语句的时候就指出了值的类型、符号名和值,还让程序为这个变量分配内存。还有另外一种策略,这种策略以指针为基础,指针是一个变量,其存储的是值的地址,而不是值本身。(这里涉及到内存地址这一概念,是计算机组成原理、操作系统特别重要的一个知识,这里就不多赘述)
2025-05-17 21:12:05
975
原创 c++枚举类型
C++中的enum工具提供了一种可以替代const创建符号常量的方式,还允许定义新类型。Red就等于0,Green等于1,Blue等于2。
2025-05-17 20:01:24
266
原创 C++ 函数和数组
在c++中,当前仅当用于函数头或者函数原型中,int*arr和int arr[]的含义才是相通的,都意味着arr是一个int指针。在其他的上下文中,int*arr和int arr[]的含义并不相同,例如不能在结构体中用int tip[]来声明指针。在进行参数传递时,并没有将全部的数组内容传递给函数,而是只传递了数组的地址、包含的元素类型、元素数量。在进行遍历数组时,使用指针加法和数组下标是等效的。因此函数传递的是地址,由于数组的类型为int,因此array的类型必须是int指针,机位int*。
2025-05-17 12:16:11
212
原创 JAVA并发编程
进程:程序的一个实例。大部分程序可以同时运行多个实例进程(记事本、IDEA、浏览器等等),也有一些程序只能启动一个实例进程(360安全卫士、网易云音乐等等)。线程:一个进程中可以分一到多个线程。一个线程就是一个指令流,将指令流中的指令按一定顺序交给CPU执行。二者对比:进程:1、进程是资源分配的最小单元2、进程之间是相互独立的3、进程间的通信较为复杂:同一计算机的进程通信称为IPC、不同计算机之间的通信需要通过网络,遵守共同的协议,如HTTP线程:1、线程是最小的调度单元。
2025-04-20 16:49:02
823
原创 两个线程交替打印0-100内的奇数和偶数
存在的问题:在一个线程执行完一次循环的操作后,仍然会尝试获取锁,但是此时它不应该获取锁(因为a此时一定不满足其执行的条件),可以通过wait、notify来改善。方法一:直接粗暴的使用synchronized加锁。方法二:wait notify改进代码。这样能够保证两个线程依次获取锁。
2025-03-22 12:36:14
137
原创 23种设计模式学习笔记(附带源码和测试代码)连载中。。
对于getInstance函数来说,绝大部分的操作都是读操作(取出instance),所以读操作的线程安全的,只有写操作(创建instance)是线程不安全的,但是我们在调用getInstance函数的时候其实只会执行一次写操作,其他的读操作是允许不同线程同时执行的。若简单粗暴的使用加锁的方法来实现线程安全,同时只能有一个线程执行读操作,其他线程即使想读也得乖乖等待,会导致效率低下。单例模式,顾名思义就是这个类只能有单个实例对象被创建,并且这个类提供了访问这个唯一实例对象的方法,不需要实例化该类的对象。
2025-01-01 16:53:28
836
原创 Linux系统虚拟机远程连接Windows系统(保姆级教程,两种方法 FinalShell或vscode)
会出现需要配置的信息,名称可以填写自己喜欢的名称,主机就填写在准备工作中记录下来的ip地址,端口号不需要修改,备注可以不填,用户名填写你的虚拟机的名字,密码添加你的虚拟机的密码。下载完成后会在刚刚点击的拓展下面出现一个远程资源管理器,点击远程资源管理器,点击SSH右边的齿轮,再双击config文件进行配置。点击左上角的蓝色文件夹图标,再点击新出现的窗口的左上角的白色带加号的文件夹图标,选择SSH连接(Linux)我们点击那三个点,再点击保留、仍然保留,信任此项目进行下载。以下是windows的下载地址。
2024-08-21 22:06:13
2045
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人