
C++11
文章平均质量分 67
实用的c++11新特性
摸鱼那些事儿
个人博客:https://guangyin.blog/
展开
-
vs2022使用动态库
步骤二。原创 2024-08-19 17:12:29 · 275 阅读 · 0 评论 -
HTTP协议
r\n,通过\r\r\n进行判断,就知道这行是否结束。原创 2024-08-18 16:46:40 · 270 阅读 · 0 评论 -
网络编程基础(1)
IPv6的表示可以省略连续的0,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。关于字节序,在网络传递过程中,一般操作数据是使用大端存储,而我们的电脑PC机一般使用小端存储,所以在处理数据传递时,需要进行一些转换,计算机才能处理这些数据。里面的192,168,190和129都是使用八位的二进制数来表示,也正是由于八位的二进制数来表示,所以每一个最大就是。IP协议版本有两个:IPv4和IPv6。高位字节和低位字节就是按照数学中的个位,百位,千位等来看,例如如下的。原创 2024-08-18 16:45:28 · 393 阅读 · 0 评论 -
c++内存泄漏检测工具valgrind和drmemory
我发现drmemory在windows环境检测c++内存泄漏好像有点不准确,windows环境总感觉差点意思,以后打算转到linux环境了。原创 2024-08-18 16:43:28 · 1306 阅读 · 0 评论 -
使用clion刷leetcode
总体来说并不复杂,开始时可能不太熟练,但写多一两次就很快了,同时,生成测试用例的代码并不是没有用,打比赛时的测试用例也是要自己生成的,写熟练以后对以后打比赛还是有点用的。方法是最简单的方法,必要情况下,你可以完善如下功能,创建一个生成测试用例的函数,同时输出与正确答案结果不同的测试用例,至于正确结果,可以直接拿题解的就行。注意,再clion上提交代码时,只会提交以下被包裹的代码,其他代码是不会被提交的,,自行设置测试用例,这样通过打断点就能调试了~,注意,这里的。这道题,我们就需要实现。原创 2024-07-09 21:35:06 · 834 阅读 · 1 评论 -
生成和链接静态库
虽然生成的静态库不一样,但是两者在链接静态库的时候都是一样的,只不过如果是使用MinGW生成的静态库时,需要去头去尾,只保留库的名字部分,例如静态库为。,把前缀和后缀去,然后掉取中间即可,只需要记住和链接MSVC静态库一样即可。,例如,静态库是使用MSVC生成的,但项目是使用MinGW,就会报如下错误。报错原因:使用MinGW生成的静态库时没有去头去尾,例如使用。报错原因:静态库和应用程序。,我们链接的时写的是。原创 2024-06-15 22:43:03 · 716 阅读 · 0 评论 -
为什么使用条件变量
。原创 2024-04-19 19:12:19 · 316 阅读 · 0 评论 -
Linux网络编程--网络传输
进行网络传输前需要做什么(没有ARP缓存)?在进行传输前我们需要封装成以太网格式,在以太网格式形成之前我们需要进行ARP请求,在进行ARP请求前,我们需要根据路由表判断是否在同一个局域网内,如果再同一局域网,则先查询ARP缓存,如果不在同一个局域网还是先查询ARP缓存看有没有默认网关的MAC地址,如果没有再发送ARP请求。所以第一步需要根据路由表判断是否在同一个局域网内2.数据传输是根据哪个地址进行传输的?根据MAC地址进行传输3.ARP请求/应答成功后做什么?原创 2024-04-19 19:10:54 · 1167 阅读 · 0 评论 -
套接字基础
最近学习网络编程的时候,在使用selectpoll和epoll时总容易出错,像什么优缺点啊,形参啥的,翻来覆去的,搞得有点难受,现在总结一下吧,发现如果不总结,后面还是容易出错。原创 2024-04-19 19:07:28 · 856 阅读 · 0 评论 -
clion使用vld进行内存泄漏检测
vld是款配合vs编译套件进行的内存泄露检测工具,所有我们使用时需要配合msvc编译套件来使用,注意!vld只能在debug模式下使用。我们还需要将vld的动态库手动添加到build目录下,将四个文件拷贝到build目录下。CMakeLists.txt文件。原创 2024-04-19 19:04:26 · 1141 阅读 · 5 评论 -
c++使用spdlog库打日记
打日志的本质就是多输出,c++没有自带的日志库,只能使用第三方库实现,当然,直接cout输出也可以,但是一般日志库都进行了优化,比我们使用cout输出的效率更高,同时效果也更好,这里使用**原创 2024-04-19 18:59:53 · 331 阅读 · 0 评论 -
c++使用googletest进行单元测试
使用场景:在平时写代码中,我们需要时可以使用Google test使用,当然,我们也可以自己写函数进行验证,但是使用google test是一个封装好的,使用也很简单,同时显示效果更佳能有效提高我们的效率以下是基于clion和vcpkg使用(vs好像继承了google test):这里就不介绍怎么安装了,不会在clion中使用vcpkg安装gtest的可以看一看前面的文章,很快就能看完。原创 2024-04-19 18:58:14 · 1189 阅读 · 0 评论 -
cmake嵌套调用
在一个大项目中,随着代码量的增加,我们使用一个CMakeLists.txt文件就不好管理,不利于维护,所有我们一般为每一个模块或文件夹使用一个CMakeLists.txt文件管理,减少一个CMakeLists.txt的压力,便于维护和管理。原创 2024-04-19 18:56:27 · 206 阅读 · 0 评论 -
find_package使用
find_package是cmake查找库的一个函数。原创 2024-04-19 18:54:57 · 933 阅读 · 0 评论 -
自动类型推导
使用auto时,必须对auto进行初始化,只有进行初始化才能推导出类型通过上面我们会发现。原创 2024-02-16 19:17:45 · 396 阅读 · 0 评论 -
断言与静态断言
静态断言是C++11及其之后版本中引入的一种编译时断言机制。它允许在编译时期进行条件检查,并在条件不满足时产生编译错误。这种机制是用于在编译阶段而非运行时验证程序的某些属性,从而确保类型安全、大小匹配、模板参数的正确性静态断言通过在编译时期预先排除某些问题,增强了代码的类型安全性和健壮性。而断言作为一个调试工具,帮助开发者在程序运行时及时发现并处理错误。原创 2024-01-26 23:11:39 · 454 阅读 · 0 评论 -
字符串与数值间的转换
/ str 现在是 “123”如果转换的数值超出了类型的范围,会抛出。注意:如果字符串无法转换为数字会抛出。头文件: <string>,头文件:<string>原创 2024-01-26 21:58:23 · 402 阅读 · 0 评论 -
移动构造函数
简单来说,移动语义就是通过改变指针的指向来转移资源,减少了多次new的操作以达到提高效率的效果。原创 2023-12-22 16:22:27 · 195 阅读 · 0 评论 -
C++11模板优化
c++11对模板添加了很多内容,如对函数模板默认参数的支持,模板别名。原创 2023-12-19 23:43:50 · 90 阅读 · 0 评论 -
final与override
final和override是C++是C++11新引入的两个关键字,让我们来了解一下这两个关键字的作用final:final需要放在类或者虚函数的后面,如果放在类的后面,指明该类不能够继承(或者说不能有派生类),放在虚函数后面指明该虚函数不能在被重写,最终的实现形式止于该类override:明确函数的意图,能够让编辑器帮助你检查重写是否正确(简单来说能防止你打错字),如果不正确编译器就会报错,减少错误的可能,提高可读性使用这两个关键字能有效的提高代码的可读性并减少出错的可能。原创 2023-12-19 00:50:54 · 92 阅读 · 1 评论 -
成员初始化列表
初始化列表是一种在构造函数中初始化成员变量的语法。它允许你在对象创建时直接初始化成员变量,而不是在构造函数体内进行赋值操作。这种方式对于初始化常量成员(const)、引用成员以及调用基类或成员对象的构造函数尤为重要。,这里假设有一个MyClass类,x和y为成员函数在了解初始化列表之前,我们需要先了解对象构造的过程是怎么样的成员初始化列表阶段:在这个阶段,成员变量直接通过它们的构造函数初始化。这是在进入构造函数体之前发生的。构造函数体执行阶段:在这个阶段,可以对成员变量进行进一步的操作或赋值。原创 2023-12-17 21:17:14 · 130 阅读 · 1 评论 -
原始字面量
原始字符串字面量(Raw String Literals)可以让你编写包含多行和特殊字符的字符串,而。)xxx",注意,括号左右的字符串要么都不写,要么写一样,不然就报错,即使写了也是忽略,所有直接使用。使用格式:R"xxx(原创 2023-12-15 11:49:37 · 80 阅读 · 0 评论