C++编程
文章平均质量分 57
记录C++的一些知识点
Surplus°
If not me, then who? If not now, then when?
展开
-
二分查找算法详解(经典二分和左右边界查找)
这篇文章主要讲解经典的二分查找算法以及二分查找算法的变种(左右边界的查找)。二分查找算法的基本思想:在有序表中,每次都取中间记录作为比较对象,若给定值与中间记录的关键字相等则查找成功,返回该关键字的索引;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上诉过程,直到查找成功,或者所有查找区域无记录,查找失败为止,返回一个值代表没有找到。原创 2021-02-09 11:12:18 · 4243 阅读 · 4 评论 -
多数投票算法(Boyer-Moore Algorithm)详解
多数投票算法(Boyer-Moore Algorithm)给定一个无序数组,有n个元素,找出其中的一个多数元素,多数元素出现的次数大于一半,注意数组中也可能不存在多数元素,如果存在多数元素则返回该多数元素,否则返回-1。原创 2021-01-29 21:54:49 · 1159 阅读 · 2 评论 -
模板参数为函数时的模板函数怎么写
我们知道模板加强了代码的复用性,那么模板参数为函数时的模板函数怎么写呢,下面介绍了普通函数为模板参数以及lambda函数为模板参数的模板的写法。#include<iostream>#include<vector>using namespace std;//普通函数int sum(const vector<int>& vec){ int ret = 0; for (int i = 0; i < vec.size(); i++) { re原创 2021-01-19 11:46:52 · 896 阅读 · 0 评论 -
VS2017代码在debug模式下正常运行,但是release模式崩溃
今天在vs2017上调试代码发现一个令人疑惑的bug,代码在debug模式下能完美运行,但是release模式下崩溃,令人费解,最后通过不断的调试发现是debug模式和release模式下变量的默认初始化不同造成的,bool型变量在release模式下是默认初始化为true,debug模式下是默认初始化为false。导致了最后的bug,这种bug难以发现,但是我们可以不让其默认初始化,最好的方式就是对每一个类都自己写构造函数,每一个变量都进行人为初始化。为了防止再遇到类似的问题特别记录一下。...原创 2020-10-21 15:04:46 · 1437 阅读 · 0 评论 -
常见排序算法之归并排序原理及递归非递归版本代码
归并排序主要思想是分治,先将要排序的元素分成两个子集,先将这两个子集排列成有序,然后将这两个有序的序列归并为一个有序的序列。原创 2020-10-20 21:24:13 · 190 阅读 · 0 评论 -
常见排序算法之快速排序原理及递归非递归版本代码
目录快速排序原理复杂度分析选择排序代码1.递归版本2.非递归版本测试及结果测试结果快速排序原理之前介绍过三种基础的排序算法以及它们之间的比较:冒泡排序,选择排序和直接插入排序,我们知道它们的时间复杂度都是O(n2),那是不是所有的算法的时间复杂度都是O(n2)呢?当然不是!下面我们介绍的快速排序之所以叫快速排序就是因为目前已有的排序算法中,快速排序的时间复杂度是最小的。快速排序的基本思想:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,则可以分别对这两部分记录继续进行排原创 2020-10-19 20:11:08 · 457 阅读 · 0 评论 -
fatal error LNK1169: 找到一个或多个多重定义的符号的解决方案
因为编译器是源文件和头文件分离编译的,实际上,源文件由于包含了头文件,而头文件中包含了构造函数的实现,于是源文件生成目标文件的时候,包含了构造函数的实现。而main.cpp也包含了头文件,同样编译生成目标文件的时候,也会包含构造函数的实现。这样二者在链接阶段就会发现有两个一模一样的函数,出现了重定义的问题。比较好的解决方法是在源文件中实现头文件中已经声明的函数。参考博客...原创 2020-09-19 10:55:21 · 391 阅读 · 0 评论 -
C++中的运算符重载--重载输出操作符、算术运算符、关系运算符、自加运算符、下标运算符
C++中的运算符重载输出操作符重载、算术运算符重载、关系运算符重载、自加运算符重载、下标运算符重载原创 2020-08-04 21:54:32 · 372 阅读 · 0 评论 -
C++中fstream、ofstream、ifstream的使用--将数据重定向输出到文本文件
C++中fstream、ofstream、ifstream的使用--将数据重定向输出到文本文件。源文件讲解。原创 2020-07-29 11:43:38 · 1496 阅读 · 0 评论 -
C++知识点的查漏补缺--常见的函数集合
C++知识点的查漏补缺C++中判别字符是什么类型的函数C++中判别字符是什么类型的函数包含在头文件<ctype.h>中isalpha();//是否为字母isdigit();//是否为数字isupper();//是否为大写字母islower();//是否为大写字母...原创 2020-07-18 22:15:28 · 133 阅读 · 0 评论