事件 JavaScript 的代码一般通过事件触发。 可以通过 addEventListener 函数为元素绑定事件的触发函数。 常见的触发函数有: 鼠标 click:鼠标左键点击 dblclick:鼠标左键双击 contextmenu:鼠标右键点击 mousedown:鼠标按下,包括左键、滚轮、右键 event.button:0表示左键,1表示中…
C++11 线程 函数接口 线程 id 的获取 // 此处的 get_id 是成员函数,说明需要使用对象进行调用 std::thread::id get_id() const noexcept; // 此处的 get_id 是 std::this_thread 命令空间中的一个实体,就是个普通函数 std::thread::id get_id() …
函数对象 函数对象(也称为仿函数)是 C++ 中的一种概念,它允许对象表现得像函数一样。这意味着可以像调用普通函数那样调用这些对象。函数对象可以是以下几类: 重载了函数调用运算符的类创建的对象: 用户自定义的类,通过重载 operator() 运算符,可以创建出自己的函数对象。这些对象可以有状态(即数据成员),也可以是无状态的。 函数名: 在 C+…
函数对象 函数对象(也称为仿函数)是 C++ 中的一种概念,它允许对象表现得像函数一样。这意味着可以像调用普通函数那样调用这些对象。函数对象可以是以下几类: 重载了函数调用运算符的类创建的对象: 用户自定义的类,通过重载 operator() 运算符,可以创建出自己的函数对象。这些对象可以有状态(即数据成员),也可以是无状态的。 函数名: 在 C+…
基本语法特性 [capture](params) opt -> retureType { body; }; 其中 capture 是捕获列表,params 是参数列表,opt 是函数选项,retureType 是返回值类型,body 是函数体。 捕获列表 不能省略。捕获一定范围内的变量。 [] 不捕捉任何变量。 [&] 捕获外部作用域…
概述 算法中包含很多对容器进行处理的算法,使用迭代器来标识要处理的数据或数据段、以及结果的存放位 置,有的函数还作为对象参数传递给另一个函数,实现数据的处理。这些算法可以操作在多种容器类型 上, 所以称为“泛型”,泛型算法不是针对容器编写,而只是单独依赖迭代器和迭代器操作实现。而且算法 库中的算法都是普通函数(自由函数)。 算法的分类 非修改式的算…
JS 的调用方式与执行顺序 使用方式 HTML页面中的任意位置加上 <script type="module"></script> 标签即可。 常见使用方式有以下几种: 直接在 <script type="module"></script> 标签内写 JS 代码。 直接引入文件:<script …
迭代器的基本概念 迭代器(iterator)模式又称为游标(Cursor)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 或者这样说可能更容易理解:Iterator 模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由 iterator 提供的方法)访问聚…
容器的选择 元素是不是有序 如果需要保持元素的有序状态,那么关联式容器通常是最佳选择。这些容器,如 set 和 map,内部使用平衡二叉树(通常是红黑树),它们会自动维护元素的有序性,且允许进行高效的查找、插入和删除操作。 对于无序关联式容器,如 unordered_set 和 unordered_map,它们基于哈希表实现,不保证元素的顺序,因此…
哈希 哈希函数 哈希函数是一种根据关键码 key 去寻找值的数据映射的结构,即:根据 key 值找到 key 对应的存储位置。 size_t index = H(key) // 由关键字获取所在位置 哈希函数的构造方式 定址法: 这种方法使用线性函数来构造哈希函数,公式为 H(key) = a * key + b。其中,a 和 b 是常数,需要根据…