std::make_shared有什么好处?

为什么使用std::make_shared,std::make_shared有什么好处?

更美观的代码

更高的效率

上面的代码存在两次内存分配

1:new Node

2:为ptr分配控制块的内存用于存放引用计数等信息

如果使用std::make_sha[……]

继续阅读

C++ windows显示器相关信息获取

可以获取到哪些信息?

  • 1. 显示器个数
  • 2. 是否为主显示器
  • 3. 显示器硬件id
  • 4. 屏幕物理分辨率(硬件支持的最大分辨率)
  • 5. 屏幕逻辑分辨率(软件所能达到的最大分辨率)
  • 6. 屏幕英寸

demo代码如下:

demo输出展示:

[……]

继续阅读

c++使用libcurl实现断点续传

libcurl实现断点续传大致需要两个关键点:

  • 1:使用GetFileSize接口获取本地已缓存文件的大小。
  • 2:通过curl_easy_setopt接口的CURLOPT_RESUME_FROM_LARGE参数,将获取的大小设置到开始下载的起点。

下面demo代码仅提供思路,需要优化才能使[……]

继续阅读

c++使用文件映射的方式读取文件

内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件[……]

继续阅读

c++时间戳转年月日时分秒

时间戳转年月日时分秒是比较常用的功能,调用api localtime_s把时间戳转成tm结构体,就可以通过tm结构体中的成员得到对应的年月日时分秒,需要注意的就是tm结构体部分成员的值不是真实的值,需要做一些简单的转换。具体实现请参照下面的demo代码

实现代码demo

demo结果[……]

继续阅读