三目运算
if-else 的简单表达式:(?)(:) 三元运算: (x<0) ? (y=0) : (z=28); 效果等同于: if(x<0) y=0; else z=28; 赋值语句: int a = (x>100) ? 1 : 0; 效果等同于: if(...
if-else 的简单表达式:(?)(:) 三元运算: (x<0) ? (y=0) : (z=28); 效果等同于: if(x<0) y=0; else z=28; 赋值语句: int a = (x>100) ? 1 : 0; 效果等同于: if(...
目录: 设计模式 工厂模式 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需指定将要创建的对象的确切类。以下是一个简单的工厂模式示例,包括了工厂类的定义和使用步骤。 python代码: # 定义产品接口 class Product: def operation(self): pass # 具体产品A class ConcreteProd...
[TOC] 1. STL 迭代器 在 C++ 的标准模板库(STL)中,迭代器是用来遍历或访问容器中元素的对象,类似于指针。它们提供了一种通用的方法来访问容器的内容,无论容器的底层实现是什么样的。1 1.1 迭代器的作用 访问容器元素:迭代器提供了一种方法来按顺序访问容器中的元素,而不必知道容器的内部结构。 容器与算法的桥梁:STL 中的算法,如 sort, find, a...
[TOC] 1. STL函数介绍 C++标准库中的泛型算法可以操作多种容器类型,包括标准库类型和内置数组。 这些 STL 算法主要定义在 <algorithm> 中,有些还会在 <numeric> 、 <functional> 等头文件中。 2. 常见函数简介 STL常见算法:1 排序算法,如 sort, reverse, nth_ele...
[TOC] 容器的简单概念 一些重要的容器及其简要介绍: (1)向量(std::vector) 内存结构:动态数组,支持快速随机访问。通常使用较少的内存,因为它仅存储实际的元素。 实现原理:动态数组,在内存中连续存储元素,自动调整大小以容纳更多元素。当超出当前容量时,会分配一个更大的内存块,复制现有元素,并释放旧的内存。 性能特点: 提供高效的随机...
当用鼠标选中 CTreeCtrl 中的一个节点时,被选中的节点变成了深蓝色的光标选中状态。这时我要它那种深蓝色的光标一直存在,直到我点击选中其他节点。 现在的情况是:被选中的节点变成了深蓝色的光标选中状态以后,当鼠标移出当前对话框后,深蓝色的光标就看不到了。 解决方法: 把 tree 的 show selection always 选中:这种方法的效果就是,当鼠标移出 t...
[TOC] std::optional 在C++17标准中引入的std::optional是一个模板类,用于表示某个对象的值是可选的,即它可能包含一个值也可能不包含值。std::optional是对在编程中常见的可能不返回值的情况的一种类型安全的替代。 std::optional<T>可以看作一个容器,它最多包含一个类型为T的对象。std::optional主要解决的是某些...
[TOC] 1. union 1.1 union 的使用 union 是 C++ 中一个较老的特性,它允许在相同的内存位置存储不同的数据类型,但一次只能存储其中一种类型的值。union 不需要额外的赋值和强制类型转换,同一个数据可解释为两个不一样的东西。 union 的定义格式:1 union/*共用体名*/ { /*成员列表*/ }/*共用体变量名*/; ...
[TOC] 一、std::tuple简介 tuple是一个标准库类模板,用于存储固定数量的异类对象。允许将多个对象捆绑成一个单一的对象,并且可以轻松地从中提取值或者通过结构化绑定将其解构到不同的变量中。1 tuple提供了一个通用的数据结构,可以保存不同类型的元素,并通过下标或者std::get函数来访问其中的值。 C++11引入了最初的tuple实现, C++17进一步扩展了其功能...
[TOC] C++位运算 按位运算是C++中最基本的位操作,主要用于直接操作数据的二进制表示。C++提供了几种按位运算符: 按位与 &:对两个数的每一对应位进行与运算,只有两个对应位都为1时结果才为1。 按位或 |:对两个数的每一对应位进行或运算,只要其中一个位为1,结果就为1。 按位异或 ^:对两个数的每一对应位进行异或运算,当两个对应位不同时,结果为1。 ...