03 2023 档案
摘要:现在新版的QT5.15之后安装都只能用官网下载的exe在线安装,国内安装会遇到很多问题。我们可以使用镜像源进行安装,使用镜像源安装的方式为: 首先在官网把对应的exe文件下载下来,https://download.qt.io/official_releases/online_installers/
阅读全文
摘要:简单理解,左值拥有地址,右值没有地址,是一个临时变量。 左值不一定在左边,在右边的不一定是右值 int i = 10; int a = i;//把左值赋给左值 左值引用 非const右值不能赋值给左值引用int SetValue(int value) { return value; } int Se
阅读全文
摘要:函数指针的几种用法 #include<iostream> #include<vector> using namespace std; void add(int a, int b) { cout<<a + b<<" "; } void ForEach(const vector<int>& nums,v
阅读全文
摘要:给出几种常见的形式: extern int i;//声明,当其他文件存在i的定义的时候,本文件要使用i需要使用extern关键字,让编译器去其他文件找到i的定义,声明可以多次,但是定义只能一次 extern int j=1;//这样没有太大的意义,表示声明并定义,赋初值的操作把extern的作用抹杀
阅读全文
摘要:背包问题是动态规划的常见题目。主要分为01背包、多重背包等。题目一般给出物品个数N、背包体积V。然后输入每个物品的体积V和价值W 一般的解题思路是使用一个二维数组,每一个f[i][j]可以看作一个背包。那么f[i][j]就表示有i个物品放入体积为j的背包最大的价值。对于第i个物品可能出现三种情况:
阅读全文
摘要:数据类型占用的字节数: char 1 short 2 int 4 long long 8 当我们需要进行内存补齐的时候,是看最大类型然后进行补齐。 struct test{ short a; short b; char c; }; struct test01 { long long a; char
阅读全文
摘要:static可以用在两种地方。类或结构体外部和类或结构体内部。 对于外部,可以简单理解为在该文件中声明了static的是一个私有的。那么其他文件中使用同名变量或者函数,编译器不会报错,即其他文件看不到该静态变量或者函数。但如果没声明为static那么就会报错。即不可以有两个重名的全局变量或函数,如果
阅读全文
摘要:并查集主要包括初始化、寻根以及合并三个操作。 例如a、b、c、d、e,初始化他们的祖先为本身。 寻根操作: int find_root(int x){//非路径压缩 return x==s[x]?x:finde_root(s[x]); } 上述寻根操作,没有对路径进行压缩。具体表现为如果a的祖先是b
阅读全文
摘要:虚函数实现了C++的多态特性。 重写虚函数,虚函数的参数类别和个数不可以改变,返回值类型也不可以改变。存在一个例外,当A类的虚函数返回A类指针,B类继承后返回B类指针,但要求A类指针和B类指针可以相互转换。覆盖和重写为一个意思,重载则不同。 可以分为纯虚函数和虚函数, 对于父类的纯虚函数,子类在继承
阅读全文
摘要:常量指针和指针常量很容易被混淆,其实可以使用一个简单的记忆方式。 c++中我们一般从右往左进行解析,比如一个简单的赋值操作。a=b=c;他的含义就是b=c的值,然后将b的值赋给a。 指针常量的写法有: int* const p; 常量指针: const int* p; int const *p; 几
阅读全文