摘要: 文章参考:爱编程的大丙 (subingwen.cn) 1. 断言 定义:断言是程序测试的一种常用手段,通过将一个返回值总是为真的判断表达式放在语句中,用于排除一些逻辑上的错误。 语法: assert(表达式):如果表达式为真,程序正常运行。如果为假,程序将会终止运行。 头文件:<cassert>/< 阅读全文
posted @ 2023-12-04 16:59 BinaryPrinter 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) C++11中提供了专门的转换函数,用于对数值类型和字符串之间进行转换。 1. 数值转字符串 使用to_string()函数,这是一个重载函数,函数声明位于<string>头文件中,函数原型如下: // 头文件 <string> string to 阅读全文
posted @ 2023-12-04 16:58 BinaryPrinter 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) 1. 连续右尖号 在C++11之前,如果模板实例化时出现了两个右尖号>>,它会被编译成右移操作符,而不是模板参数表的结束。显然,这回导致模板实例化失败,程序无法通过编译。 C++11中改进了编译器的解析规则,即:尽可能地将多个连续的右尖号(>)解 阅读全文
posted @ 2023-12-04 16:57 BinaryPrinter 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) 1. final C++11中提供了final关键字。 作用: 写在类名后面,限制类不能被继承。 写在函数后面,限制函数被重写。 1.1 限制函数 被final限制的函数无法被重写。 #include <iostream> #include <c 阅读全文
posted @ 2023-12-04 16:57 BinaryPrinter 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) 1. C++98类成员初始化 C++98中的初始化策略: 非静态数据成员,必须在构造函数中初始化。 静态数据成员,有两种情况: 在类外进行初始化。 如果是静态常量,而且是整形/枚举类型,可以在类中声明时直接加上=初始值来初始化。 EG: 代码: 阅读全文
posted @ 2023-12-04 16:56 BinaryPrinter 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) 1. 定义 C++11标准要求long long类型在不同平台有不同的长度,但至少有64位,它分为两种: long long 类型:后面需要加上LL或ll的后缀。 long long num1 = 123456789LL; long long n 阅读全文
posted @ 2023-12-04 16:55 BinaryPrinter 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) 概述: 在C和C++中,如果想在字符串中表示一些特殊字符,往往都是通过特殊字符进行转义。例如输入路径时,想要输入\,就要使用\\,对其进行转义,因为\是特殊字符。而在C++11中,提供了原始字面量这一操作,在原始字面量中省略了转义的操作,可以直接 阅读全文
posted @ 2023-12-04 16:54 BinaryPrinter 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 内容参考:爱编程的大丙 (subingwen.cn) 一. C语言版 大致思路 采用生产者——消费者模型: 生产者:用户向任务队列添加任务,是生产者。 消费者:线程池里面的线程从任务队列中取出任务是,是消费者。 任务队列: 单个任务结构:使用结构体封装,其中包含一个函数指针,用于指向要处理的具体任务 阅读全文
posted @ 2023-11-24 17:22 BinaryPrinter 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) 一. 线程同步简介 1. 定义 所谓线程同步,其实是为了避免多个线程同时访问一个共享资源,最终导致共享资源出现偏差的情况(目前计算机大都是多核CPU,因此会出现多个进程、线程同时运行的情况)。因此,同步其实是让多个线程依次访问某一共享资源,不要出 阅读全文
posted @ 2023-11-23 13:39 BinaryPrinter 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 文章参考:爱编程的大丙 (subingwen.cn) 一. 线程概述 线程是一种轻量级的,在Linux环境下,由于Linux内核起初并未设计线程,只有进程,因此将线程本质上仍是进程。而在实际处理中,进程是操作系统最小的分配资源单位,而线程是操作系统最小的调度执行单位。 区别如下: 空间上:每一个进程 阅读全文
posted @ 2023-11-22 11:15 BinaryPrinter 阅读(45) 评论(0) 推荐(0) 编辑