自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(337)
  • 收藏
  • 关注

原创 日志

【代码】日志。

2024-04-27 15:38:04 23

原创 Task.hpp

【代码】Task.hpp。

2024-04-27 11:25:36 44

原创 假如我写了几个函数,想将函数像存放数据一样放在数组里,方便调用,怎么做?

【代码】假如我写了几个函数,想将函数像存放数据一样放在数组里,方便调用,怎么做?

2024-04-25 21:38:04 75

原创 让其它线程获取到某一个线程申请的堆区

用cout输出指针的时候,必须强转成void*。格式化字符串来打印其地址。因为对于指针类型的变量,应该使用。会自动以适当的格式打印地址。,因此你需要将指针转换为。

2024-04-25 10:21:21 97

原创 写一个C语言的结构体成员函数的例子

【代码】写一个C语言的结构体成员函数的例子。

2024-04-24 10:45:03 94

原创 使用写入这类接口后,文件指针fp是否会偏移?

以便下一次写入操作。因此,文件指针 `fp` 在使用 `fprintf` 函数后会发生偏移,指向已写入数据的末尾位置。在使用 `fprintf` 函数写入数据时,文件指针 `fp` 会自动进行偏移,以确保数据被写入到文件的正确位置。可见,每一次写入接口执行后,文件指针都偏移到了数据末尾,下一个接口就在末尾写入。每次调用 `fprintf` 函数都会将数据写入文件,并且。

2024-04-23 13:43:27 222

原创 链表逆置:原地逆置

【代码】链表逆置:原地逆置。

2024-04-16 14:07:09 109

原创 模拟实现strcpy

【代码】模拟实现strcpy。

2024-03-29 19:35:22 111

原创 模拟实现cout

因为如果返回的是对象而不是引用,那么每次操作后都会生成一个新的对象,增加了额外的开销。而返回引用则可以直接对原对象进行操作,减少了不必要的资源消耗。通过返回引用类型,每次操作后返回的是当前对象的引用,就可以继续对该对象进行操作,从而实现了操作符的连续调用。,这种连续使用操作符的方式使代码更加清晰和简洁。在流式编程中,我们通常希望。另外,返回引用类型还可以。

2024-03-28 11:55:58 211

原创 静态的通讯录

【代码】静态的通讯录。

2024-03-12 18:58:54 242

原创 static的作用

关键字,可以将函数的作用域限定在当前文件中。这意味着只有在当前文件中可以调用这个函数,其他文件无法使用这个函数。这种方式可以避免函数名的冲突,也能够提高代码的安全性和可维护性。修饰符来隐藏这些函数。这样做可以有效地封装内部实现,只暴露必要的接口给外部使用,从而提高了代码的模块化程度。还可以用来修饰全局变量,使得全局变量的作用域被限制在当前文件内,不会被其他文件访问。修饰函数能够带来更好的封装性、安全性和可维护性,是一种良好的编程实践。:对于那些不想将函数暴露给外部使用的辅助函数,可以使用。

2024-03-11 16:31:32 225

原创 理解向上取整函数

进行向上取整对齐,并返回对齐后的大小。总的来说,这段代码的作用是将输入的。这段代码定义了一个函数。,它的作用是将指定的。

2024-03-11 13:39:37 310

原创 定长内存池

【代码】定长内存池。

2024-03-11 09:28:39 297

原创 封装线程

【代码】封装线程。

2024-03-10 17:07:42 106

原创 单生产单消费的环形队列模型

【代码】【无标题】

2024-03-08 18:51:22 206

原创 锁的封装。

【代码】锁的封装。

2024-03-07 13:54:23 93

原创 定义一个计算器任务

【代码】定义一个计算器任务。

2024-03-06 20:12:43 77

原创 一个生产者和一个消费者的生产消费模型

【代码】一个生产者和一个消费者的生产消费模型。

2024-03-06 20:09:28 175

原创 如何理解template<size_t N>?

template<size_t N> 是C++中的模板参数,用于定一个非类型参数的值。它可以在编译时确定,并且可以在编译时进行计算和使用。

2024-03-03 20:24:47 287

原创 实现一个二进制的向磁盘写入数据

【代码】实现一个二进制的向磁盘写入数据。

2024-02-15 20:02:03 120

原创 command的作用

的作用是从指定的文件描述符中读取一个32位的命令,并将其返回。是一个无符号32位整数变量,用于存储从文件描述符。

2024-02-12 21:28:58 254

原创 size_t fwrite(const void* ptr, size_t size, size_t nmemb,FILE* stream);这里的nmemb是什么?

在上述例子中,`buffer`数组中有5个元素,每个元素的大小为`sizeof(int)`(在这里是4字节)。`numElements`变量计算出数组中的元素数量,即`5`。然后,`fwrite`函数的`nmemb`参数设置为`numElements`,指定一次写入`5`个元素,将整个`buffer`数组的数据写入到文件中。我们希望使用`fwrite`函数将一个数组`buffer`中的数据写入到该文件中。`fwrite`函数返回成功写入的元素数量,这里是`5`。

2024-02-03 14:47:02 244

原创 可执行程序加载到内存的代码和数据,其中加载是拷贝还是转移?

当可执行程序被加载到内存时,操作系统会为该程序分配一块内存空间,并将程序的代码和数据从磁盘中读取到这块内存中。这个过程涉及到内存管理和虚拟内存等技术,操作系统将程序代码和数据从磁盘读取到内存中,但并不会从磁盘中删除该程序的内容。因此,加载到内存的可执行程序是通过拷贝的方式进行的,而不是转移。这样做的好处是在程序执行期间可以直接在内存中访问程序的代码和数据,从而提高了程序的执行效率。可执行程序加载到内存时是通过。

2024-01-31 11:51:46 141

原创 请设计一个小程序来判断当前是大端字节序还是小端字节序?

【代码】请设计一个小程序来判断当前是大端字节序还是小端字节序?

2024-01-27 16:56:02 31

原创 计算每种类型的大小的代码

【代码】计算每种类型的大小的代码。

2024-01-23 15:01:41 373

原创 遇到除0就抛异常的代码

【代码】遇到除0就抛异常的代码。

2023-11-19 12:34:09 124

原创 打印TopK问题:升序

【代码】打印TopK问题:升序。

2023-11-07 18:30:40 87

原创 如何用小堆打印数组的升序?

【代码】如何用小堆打印数组的升序?

2023-11-07 15:19:17 87

原创 汇编观察构成多态与否底层调用的区别

2023-10-25 14:00:34 110

原创 while(!st.empty())等价于什么?

2023-10-18 19:11:32 58

原创 vector+算法sort与list+sort的效率比较,容易写错的地方原因探析

快排在最坏情况下的时间复杂度为(n^2),最坏情况对应的是数据有序,我写的代码就是有序数,所有跑出来的结果和老师的无序数相反,快排的平均时间复杂度是(nlgn),

2023-10-17 11:07:01 398

原创 sort的时间复杂度为

不是的,一般情况下,sort函数的时间复杂度为O(N logN)。这是因为常见的排序算法,如快速排序、归并排序和堆排序等,都需要通过比较和交换来对元素进行排序,而这些操作的平均时间复杂度为O(logN)。所以,当有N个元素需要排序时,时间复杂度通常为O(N logN)。但是,也有一些特殊场景下,sort函数的时间复杂度可能是O(N),比如当待排序的集合已经是有序的情况下,部分实现可能会使用优化策略,将时间复杂度降低到O(N)。但是这并不是sort函数的通常情况。

2023-10-13 11:43:04 947

原创 list拷贝到vector排序后拷回list和list+vector比较效率

【代码】list拷贝到vector排序后拷回list和list+vector比较效率。

2023-10-08 09:21:35 55

原创 N个数据需要排序,vector+算法sort和list+sort的效率比较

【代码】N个数据需要排序,vector+算法sort和list+sort的效率比较。

2023-10-08 09:13:14 53

原创 string ret = to_string(-3456);在没有优化的情况下,调用了几次string的拷贝构造,分别是对应什么情况?

第二次拷贝构造是将临时的 `std::string` 对象拷贝给变量 `ret`,即执行 `string ret = to_string(-3456)`。第一次拷贝构造是将整数 `-3456` 转换为临时的 `std::string` 对象,即调用 `to_string(-3456)`。在没有优化的情况下,调用了两次string的拷贝构造。

2023-10-04 21:59:04 31

原创 mencpy和strcpy的区别?

用来做内存拷贝,可以拷贝任何数据类型的对象并指定拷贝数据的长度:char a[100],b[50];参考:http://www.cppblog.com/junfeng568/archive/2006/03/11/4022.html。//注意:如果用的是sizeof(a),则会造成内存泄露。今天刷题时遇到了这个问题,记录一下。比较简单,就是拷贝字符串,遇到'\0'时结束拷贝。

2023-10-01 21:12:58 123

原创 给指针初始化为0与nullptr

使用了现代 C++ 的新特性,即使用关键字 `nullptr` 来初始化指针。`nullptr` 是一个空指针常量,具有与 `0` 相同的空指针值,但更明确地表示指针为空。使用 `nullptr` 可以提高代码的可读性和可维护性。总的来说,如果你正在使用较新的 C++ 标准,建议使用 `nullptr` 来初始化指针,以体现代码的现代化。` 是在 C++ 中经常使用的旧式空指针初始化方式。这种方式在较旧的 C++ 版本中是合法的,并且仍然有效,但在现代 C++ 中已经被弃用。这两种写法有一些区别。

2023-10-01 10:49:01 349

原创 ThreadPool(const ThreadPool<T>& other) = delete;

这看起来是一个类模板 ThreadPool 的拷贝构造函数声明,其中使用了 `= delete`,表示禁用了拷贝构造函数的默认实现。

2023-09-30 19:23:07 46

原创 typedef function<int (int,int)> func_t;

创建了一个名为 fun_t 的类型别名,该别名表示一个接受两个整数参数并返回一个整数的函数类型。<int(int,int)>: 这部分定义了 fun_t 类型别名所代表的函数类型的签名。具体来说,它是一个接受两个整数参数并返回一个整数的函数类型。它允许你为一个已存在的类型创建一个新的、易于使用的名称。这个代码片段中,myFunction 是一个函数类型别名的变量,可以用来调用一个接受两个整数参数并返回一个整数的函数。在这里,我们将创建一个名为 fun_t 的类型别名。

2023-09-21 14:22:43 211

原创 volatile的作用

在C/C++中,`volatile`是一个关键字,用于告诉编译器变量的值可能在未预料的情况下被改变。它的主要作用是防止编译器对变量进行优化,以。确保每次访问该变量都从内存中读取最新的值,而不是使用缓存的值。

2023-09-18 21:09:01 41

计算机网络网络网络网络

计算机网络网络网络网络

2023-08-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除