
C++
剑圣土豆
Welcome
展开
-
错误/警告类型总结——comparison between signed and unsigned integer expressions
错误类型: vector<int> histogram = Histogram(img); int total = 0; for (int i = 0; i != histogram.size(); ++i) { total += histogram[i]; }分析:警告的意思是一个无符号数整型与有符号整型最好不要比较。i是有符号整型,histogram.size()是无符号整型,所以会产生这个警告。解决方法:1、for (unsigned int i = 0;原创 2021-06-24 20:54:51 · 3332 阅读 · 0 评论 -
C/C++不同文件夹下包含头文件的方法及#include的使用
假设我们有如下一个工程,其中包含了几个源代码文件和头文件。其中main.c是主源代码文件,里面包含main函数。在base中包含:func3.h,func3.c,文件夹main和文件夹func4在main中包含:main.c,func1.h,func1.c和文件夹func2。 在func2中包含:func2.h和func2.c在func4中包含:func4.h和func4.c1、在main中包含头文件func1.h:#include "func1.h"这里main.c和func1.h在同转载 2021-06-24 15:57:59 · 22315 阅读 · 4 评论 -
C++中的NULL和nullptr的区别:以后用空指针就用nullptr
NULL在c++中是一个宏,是一个空指针常量,如果将NULL扩展为常数,那么这个数是0,类型为int。所以,常数0既是整型常量,也是空指针常量,这就有可能导致二义性问题。因此,c++11新标准引入了nullptr,将其作为空指针常量。NULL在C++中就是0,这是因为在C++中void* 类型是不允许隐式转换成其他类型的,所以之前C++中用0来代表空指针,但是在重载整形的情况下,会出现上述的问题。所以,C++11加入了nullptr,可以保证在任何情况下都代表空指针,而不会出现上述的情况,因此,建议以后原创 2020-09-16 22:18:33 · 338 阅读 · 0 评论 -
C++里的memset
在实现Trie时用到memset,下面简要介绍一下memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的;包含在<string.h>头文件中,可以用它对一片内存空间逐字节进行初始化;原型为 :void *memset(void *s, int v, size_t n);这里s可以是数组名,也可以是指向某一内在空间的指针;v为要填充的值;n为要填充的字节数;memset是逐字节 拷贝的。在memset使用时要千万小心,在给char以外的数组赋值时,只能初始化为0或者-1原创 2020-09-14 10:52:57 · 220 阅读 · 0 评论 -
高频面试题:高频面试题-百度/字节/滴滴- 二分查找 | 数组划分 力扣4. 寻找两个正序数组的中位数 (C++调试方法)
这里主要说一下调试方法:详细的题已经题解参考这里:高频面试题-百度/字节/滴滴- 二分查找 | 数组划分:力扣4. 寻找两个正序数组的中位数 (C++调试方法)这里提供数组划分的方法的调试,当然二分查找的方法,也可以用这里的主函数进行调试。C++实现://在自己的编译器中,加头文件很重要#include <iostream>#include <stdio.h>#include <vector>using namespace std;class Solu原创 2020-09-11 21:05:48 · 218 阅读 · 0 评论 -
如何快速判断数组中是否存在某值:C++的find()
当做题时,有时候需要快速的判断某值是否在数组中,下面提供C++中的find()源代码:#include <algorithm>template<class InputIterator, class T>InputIterator find (InputIterator first, InputIterator last, const T&val){ while (first != last) { if (*first == val) { return原创 2020-09-10 10:48:18 · 14250 阅读 · 2 评论 -
Eclipse运行C++出现Launch failed,Binary not found的小窗口
今天在用Eclipse运行C++时出现了一个窗口Launch failed,Binary not found,很肯定的说是因为该工程没有build,那么build后再运行,就不会出错此错误了。当然首先要保证以及安装CDT插件,以及C++编译器。做法:1)右键点击C++工程,然后“Build Project”2)运行...原创 2020-07-04 21:53:41 · 431 阅读 · 0 评论