
包管理器:各平台安装卸载相关记述
Windows 安装 为了确定安装目标,在安装前后调用了get_reg_items get_reg_items 上买的Windows实现是通过枚举注册表 把几个目标路径的注册表存到一起 然后根据安装前后这些路径下的注册表的项数,来找出新增的那个 通过比较,确定新增项,然后记录下新...
Windows 安装 为了确定安装目标,在安装前后调用了get_reg_items get_reg_items 上买的Windows实现是通过枚举注册表 把几个目标路径的注册表存到一起 然后根据安装前后这些路径下的注册表的项数,来找出新增的那个 通过比较,确定新增项,然后记录下新...
概述 PIMPL(Pointer to Implementation)是 C++ 中一个强大的设计模式,用于隐藏实现细节、减少编译依赖和提高接口稳定性 核心思想 分离接口与实现 公共头文件只声明接口 私有实现在单独的类中封装 公共类仅持有私有实现的指针 编译防火墙 实现 公共接口...
概述 顾名思义,priority_queue是一个拥有权值观念的queue,它允许加入新元素,移除旧元素、审视元素值等功能 priority_queue带有权值观念,其内的元素并非是依照被推入的次序排列,而是自动依照元素的权值排列。权值最高者,排在前面。 实现 缺省情况下prio...
新的改变 nullptr 在C++11中,nullptr是一个所谓“指针空值类型”的常量。 nullptr类型数据所占用的内存空间大小和void*是相同的。 nullptr和(void*)0 前者是一个编译时期常量 后者只是一个强制转换表达式,返回的也是一个void*指针类型。 ...
23 优先选择非成员非友元函数,而不是成员函数 概述 优先考虑使用非成员非友元函数,而不是成员函数 这种做法有助于保持类的接口简洁,提高代码的可读性和可维护性 为什么优先选择非成员非友元函数 增强封装性: 非成员函数不需要访问类的私有或受保护成员,因此可以减少类的内部实现细节暴露...
什么是并发 概念 在最简单,最基本的层面,并发是指两个或更多的独立活动同时发生。 计算机的并发 指的是在单个系统里,同时执行多个独立的活动,而不是顺序地或是一个接一个地。 两种并发 任务切换 以前,大多数计算机都只有一个处理器,具有单个处理单元或核心,至今有很多机器仍是这样。 对...
意义 设计并发数据结构,意味着多个线程可以并发的访问这个数据结构,线程可对这个数据结构做相同或不同的操作,并且每一个线程都能在自己的自治域中看到该数据结构。且在多线程环境下,无数据丢失和损毁,所有的数据需要维持原样,且无条件竞争。这样的数据结构,称之为“线程安全”的数据结构。 本...
thread相关 创建线程 使用 std::thread 构造函数创建线程,需传递一个可调用对象(函数、Lambda、函数对象等) 可调用对象 普通函数(函数指针) 函数对象(仿函数,Functor) 定义一个重载了 operator() 的类: lambda表达式 直接在线程构...
函数与回调 ref 包装对象的引用,在传递参数时消除对象拷贝的代价,或者将不可拷贝的对象变为可以拷贝。 reference_wrapper boost::cref boost::ref unwrap_ref bind 适配任意的可调用对象,如函数指针、函数引用、成员函数指针、函数...
组块分隔符 C++14新增了用单引号表示的组块分隔符。 使用这种语法,可以提高代码的可读性。 二进制字面量 从C++14起,我们可以使用二进制字面量 auto用于推断函数 auto可以被使用来让编译器根据赋值给变量的初始值来推断变量的类型 从C++14起,auto也适用于函数。具...
搜索当前分类