随笔分类 - C++
常见算法流程和常用操作
摘要:static MyLog * getInstance(); 是一个典型的单例模式(Singleton Pattern)中的成员函数声明。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。 1、语法分析 static MyLog * getInstance()
阅读全文
摘要:XMLHttpRequest(XHR)是现代Web开发中不可或缺的技术之一。它允许我们在不刷新整个页面的情况下,与服务器进行数据交换。readyState是XHR对象中的一个属性,它表示请求/响应过程的当前活动阶段。了解readyState对于高效使用XHR至关重要。 1、什么是XHR readyS
阅读全文
摘要:详细说明 explicit MathProblem(QObject *parent = nullptr) : QObject(parent), m_result(0) {} 这行代码定义了 MathProblem 类的构造函数,其主要功能是在创建 MathProblem 对象时对对象进行初始化操作,
阅读全文
摘要:1. 使用 rand() 和 srand() 库: <stdlib.h> 或 <cstdlib> 特点: 伪随机数生成器,简单易用。 1 #include <stdlib.h> 2 #include <time.h> 3 4 int main() { 5 srand(time(NULL)); //
阅读全文
摘要:1、动态规划概述 动态规划是一种解决多阶段决策问题的数学优化方法。它将原问题分解成若干个子问题,通过解决子问题只需解决一次并将结果保存下来,从而避免了重复计算,提高了算法效率。 通俗来讲,动态规划算法是解决一类具有重叠子问题和最优子结构性质的问题的有效方法。其基本原理是将大问题分解为小问题,通过保存
阅读全文
摘要:Debug 调试版本,包含调试信息,所以容量比 Release 大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。 Debug 模式下生成两个文件,除了.exe 或.dll 文件外,还有一个.pdb 文件,该文件记录了代码中断点等调试信息; Re
阅读全文
摘要:1、介绍 unordered_map,它是一个关联容器,内部采用的是hash表结构,拥有快速检索的功能。 1.1、特性 关联性:通过key去检索value,而不是通过绝对地址(和顺序容器不同) 无序性:使用hash表存储,内部无序 Map : 每个值对应一个键值 键唯一性:不存在两个元素的键一样 动
阅读全文
摘要:1、语法 Sort(start,end,cmp) 要使用sort(),需要包含头文件。 #include <algorithm> void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); (1)s
阅读全文
摘要:1、基本概念 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。 贪心算法解决问题的策略是:做出选择时,每次都选择对当前状态最优的解,而不考虑整个问题的解空间。它通常用来解决最优化问题,如最小生成树、哈夫曼编码等。 2、步骤 建立数学
阅读全文
摘要:1、题目要求 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1
阅读全文
摘要:1、理解 for (int num : nums) 是 C++11 引入的一种新的循环语法,称为范围-based for 循环或者是 foreach 循环。这种循环语法可以遍历容器或者数组中的元素,并且代码更加简洁易读。 int num:这里的 num 是循环体内部使用的循环变量,它的类型要和容器中
阅读全文
摘要:1、基本概念 双指针主要分为以下三种: 普通的指针:两个指针往一个方向移动 对撞指针:一般是在有序的情况下两个指针进行面对面的移动,适合解决约束条件的一组元素问题以及字符串反转问题 快慢指针:定义两个指针,一个快指针一个慢指针,用于判断是否为环或者长度的问题很方便 通过一个快指针和慢指针在一个for
阅读全文
摘要:首先利用vector生成动态数组时,因为不确定数组长度。 vector<int>result; // 构造一个空的动态数组 注:由于result是一个空数组,因为在 result 中没有元素,所以不能直接通过索引来赋值。因此在赋值过程中,利用result[i] = nums[i]的方法是错误的。 正
阅读全文
摘要:1、基本概念 这里使用C++来实现冒泡排序法 冒泡排序法采用不停地交换彼此位置来实现,故而形象地称之为冒泡 冒泡排序主要是由两层循环组成(这里记下来的原因就是两层循环的停止条件,自己编写出了错误)。 1、外层循环:主要是用来轮询; 2、内层循环:主要用来交换位置(前提是满足if条件) 3、外层循环的
阅读全文
摘要:我们可以去软件的VC文件夹下的include里看看有没有缺失easyx.h和graphics.h这两个源文件 如果没有的话,可以去 这里去下载,网址如下,选择适合自己软件版本的版本。 EasyX Graphics Library for C++ download https://easyx.cn 点
阅读全文
摘要:参考链接:https://blog.csdn.net/weixin_43780415/article/details/130498763 1、基本概念 C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向
阅读全文
摘要:1、基本概念 vector是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector是C++STL的一个重要成员,使用它时需要包含头文件: 1 #include <vector> 构造函数与初始化: vector的构造函数用来构造vector容器,函数原型为: 1 vector
阅读全文
摘要:C++运行完成后,有时需要将结果保存在类似txt等的文档中,以便于后续查看或调用。 1、保存到txt文件中 1 #include <fstream> 2 3 4 int main() 5 { 6 double Dire_angle = 45 * PI / 180 ; // 方向角 7 double
阅读全文
摘要:在串行通信的过程中,常涉及数据帧的解码与位运算,这里将集中讲解位运算的理解————位运算是计算机科学中的一种基本运算,它主要是对二进制位进行操作。 参考链接:https://blog.csdn.net/qq_39151563/article/details/108305105,内容大部分都是这篇文章
阅读全文
摘要:1、相关代码理解 在看代码时,发现有用到 SOCKET 我去找它们的定义,发现有如下定义: typedef UINT_PTR SOCKET 又去看UINT_PTR,LONG_PTR, LONG_PTR的定义,发现有如下定义: 1 typedef _W64 int INT_PTR, *PINT_PTR
阅读全文