Stl迭代器
[TOC] 1. STL 迭代器 在 C++ 的标准模板库(STL)中,迭代器是用来遍历或访问容器中元素的对象,类似于指针。它们提供了一种通用的方法来访问容器的内容,无论容器的底层实现是什么样的。1 1.1 迭代器的作用 访问容器元素:迭代器提供了一种方法来按顺序访问容器中的元素,而不必知道容器的内部结构。 容器与算法的桥梁:STL 中的算法,如 sort, find, a...
[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。 ...
[TOC] 以下内容仅针对 Windows 平台,Visual Studio 平台。 但也不一定是准确的,届时可以可以通过 sizeof()来判断,sizeof()返回的即为字节数。 cout << "Size of long: " << sizeof(long) << " bytes" << endl; sizeof() 是个...
[TOC] chrono C++ 标准库提供了 <chrono> 头文件,用于处理时间相关的操作。这个头文件引入了一组用于处理时间的类和函数,是 C++11 标准引入的一个重要组成部分。 <chrono> 头文件的核心是 std::chrono 命名空间,其中定义了各种类型和函数,用于表示时间点、时间间隔和时钟,以及执行时间相关的操作。以下是 <chron...