C++学习
不要影响我叠Q
这个作者很懒,什么都没留下…
展开
-
g++编译cpp文件提示错误:undefined reference to `XXX‘ collect2: error: ld returned 1 exit s
无原创 2023-03-02 21:34:07 · 1261 阅读 · 0 评论 -
由错误<note: candidate expects 1 argument, 0 provided>引发的思考
关于C++构造函数的思考原创 2022-06-24 01:12:00 · 1875 阅读 · 0 评论 -
Visual studio2022配置远程Linux项目
无原创 2022-06-20 11:24:34 · 7530 阅读 · 3 评论 -
C++优先队列自定义比较方式
无原创 2022-06-06 21:02:57 · 1639 阅读 · 0 评论 -
C++多线程顺序打印
#include <bits/stdc++.h>#include <thread>#include <mutex>using namespace std;mutex g_mu;condition_variable cond;int g_val;const int N = 4; //指定打印的字母个数,A为1,AB为2,ABC为3const int MAXTIME = 100; //打印次数class printC{public: pr.原创 2022-03-09 13:24:57 · 1829 阅读 · 0 评论 -
C++按照固定格式输入字符串
以华为机试题判断两个IP是否属于同一个子网的输入为例(判断两个IP是否属于同一子网_牛客题霸_牛客网 (nowcoder.com))方法1:#include<bits/stdc++.h>using namespace std;string line;int main(){ int a=0,b=0,c=0,d=0; while(~scanf("%d.%d.%d.%d", &a,&b,&c,&d)) {原创 2022-02-26 09:42:06 · 1477 阅读 · 0 评论 -
ACWing二分模板
参考自:活动 - AcWing 中的2.1二分与前缀和01:20左右1、整数二分2、实数二分原创 2022-02-18 12:33:19 · 301 阅读 · 0 评论 -
二分查找的理解
常见的二分模板:模板一,区间是左闭右闭的,即查找区间是[l,r]int binary_search(int l, int r, int a[], int x) //返回值是元素x在数组a中的位置(下标){ int mid = 0; while(l <= r) { mid = (l+r) >> 1; if(a[mid] == x) return mid; if(a[mid] <原创 2021-04-20 17:02:20 · 113 阅读 · 0 评论 -
STL中的swap函数的坑
最近刷LeetCode题目第30题时,自定义一个字符串数组的全排列函数时,遇到了一个坑,先看字符串数组全排列函数如下:unordered_set<string> help;void combine(int start, int end, vector<string>& words){ if (start == end) { string res...原创 2020-03-27 12:56:18 · 1215 阅读 · 0 评论 -
DevC++编译通过,运行时提示 process exited without return value 322212225725
出现这种结果可能是两种问题导致(目前我仅仅会知道两种,欢迎他人补充)的:1、栈溢出,见下面的代码#include<iostream>#include<vector>using namespace std;vector<vector<char> >Graphs;//vector<vector<bool> >vi...原创 2019-06-18 13:26:07 · 11320 阅读 · 1 评论 -
cin和>>遇到回车时的处理
int m = 0, n = 0; cin >> m >> n; cin.get();空白符:指回车和空格cin不丢会弃空白符,但是 >> 会跳过空白符。于是该行中最后输入的回车符就会被保存在cin的缓冲区中,在下次输入时会首先从缓冲区中取出这个空白符 ,这就会影响下次输入。所以一般在涉及到多行字符串输入时:就需要使用cin....转载 2019-06-12 13:45:31 · 8928 阅读 · 3 评论 -
C++ static关键字解析
1、static关键字修饰全局变量时,该变量存储在代码区,初始化时机在main函数之前(好像所有全局变量的初始化时机都是在main函数之前切被初始化为0)。且static修饰的全局变量仅限于本编译单元(一个编译单元即是一个cpp文件)可访问。2、static修饰局部变量(即函数内部的变量),存储在静态区,但是访问权限仅限于该变量所属函数,初始化时机为第一次调用该函数,且此时该变量具有记忆性(即...原创 2019-06-05 07:41:57 · 187 阅读 · 0 评论 -
双下标(双索引)的妙用
编程时,涉及到数组的旋转(以数组中心点为对称点进行亮亮交换),根据一般的做法是下面这样:for (int i = 0; i < n/2; ++i){ a[i] = a[n-1-i];}但有时候碰到逻辑复杂的时候,这个就很容易把for循环的第二个条件写错,还有个问题就是需要考虑n是奇数还是偶数,这时候就很难分清楚i的上限到底是n/2还是(n-1)/2。(我就经常犯这种错误)。如...原创 2019-06-07 21:16:40 · 2078 阅读 · 0 评论 -
QT实现文本文件打开与关闭----丁林松教程学习笔记
QT中函数一旦声明就必须在对应的.cpp文件中进行定义,如果不想写该函数的实现,直接将该函数实现为空函数。但是绝对不可以直接连空函数都不实现,否则会报下面的错误:moc_mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 "private: void __cdecl MainWindow::saveAsFileslot(void)" (?saveAsFil...原创 2018-12-31 01:29:36 · 2515 阅读 · 0 评论 -
符号表、程序运行时内存分区---《程序员自我修养》读书笔记
以下内容全部摘自《程序员的自我修养》,方便以后遇到类似的问题时能直接百度到,而不是需要去番薯,还不知道翻哪本书 符号表:链接过程的本质就是要把多个同步不同的目标文件之间相互“粘”到一起,或者说是像玩具积木一样可以拼装形成一个整体。为了使不同目标文件之间能够相互粘合, 这些目标文件之间必须有固定的规则才行,就像积木模块 必须有凹凸部分才能够拼合。在链接过程中,目标文件之间的相互拼合实际上是目标...原创 2019-04-02 20:00:06 · 1197 阅读 · 0 评论 -
C++中宏的使用注意事项
最近在学习UE4编程时,遇到了一个坑,在使用DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMydelegate, FString, string1)声明一个带参数的代理时候,没有在语句末尾添加分号,导致工程编译失败。而在使用UE4中其他的宏的时候,大多数都不需要在语句末尾添加分号,例如UFUNCTION和UPROPERTY。于是对这个宏的定义和使用产生了...原创 2019-05-20 10:40:32 · 382 阅读 · 0 评论 -
STL中的vector使用注意事项
最近遇到了一个很奇葩的问题,STL中的vector设置为全局变量的时候,当对vector进行扩充时,总会在运行时出现问题,见下面的代码:#include<iostream>#include<vector> #include<queue>using namespace std;#define max 1000 class Node {pu...原创 2019-05-24 13:18:25 · 653 阅读 · 0 评论 -
《深度探索C++对象模型》读书笔记
`C++在布局以及存取时间上主要的额外负担是由virtual引起的,包括:虚函数机制和虚基类机制(即用以实现“多次出现在继承体系中的base class,有一个单一而被共享的尸体”)C++对象模式:在C++中有两中成员数据:static和nonstatic以及三种成员函数:static、nonstatic和virtualC++编译器的采用的对象模型:Nonstatic成员对象...原创 2019-05-27 08:42:08 · 127 阅读 · 0 评论 -
《编译原理学习笔记》
只是摘抄了一些个人认为比较重要的,常常和我们编写程序时容易相关的一些内容。预处理器:把源程序聚合在一起,同时负责宏替换 编译器:接收预处理的输出作为输入,然后进行处理,输出汇编程序 汇编器:将汇编程序进行处理,生成可重定位的机器代码 链接器:解决外部内存的地址问题(大型程序经常被分为多个部分进行编译,因此,可重定位的激起代码有必要和其他可重定位的目标文件和库文件连接到一起,形成真正在机器...原创 2019-05-17 18:51:25 · 2132 阅读 · 0 评论 -
函数功能单一化的好处
在编程时,一个函数功能单一化不仅仅只是有降低耦合性的好处,在避免一些很深或者很容易忽略的bug也很有帮助。请看下面的问题代码(原题是CCF2014年最优配餐问题,这个算法并不是正确的。算法 正确性并不是本文的重点):#include <iostream>#include<queue>#include<vector>using namespace st...原创 2019-05-24 01:19:34 · 747 阅读 · 0 评论 -
使用vector的resize()函数过程中踩的坑
最近在学习写一些算法的代码用到了动态数组,主要思路是:在命令行中输入数组的大小,然后再调用vector::resize()函数重新分配创建的vector对象的大小,从而实现动态数组的目标。但是在实践中发现,这个resize()函数貌似工作不正常,代码中如果写了这个函数,代码的输出是没有任何结果的。代码如下(代码是CCF201409-3 字符串匹配的答案,通过了用例测试):/*********...原创 2019-05-29 14:00:14 · 4452 阅读 · 0 评论 -
C++ 局部变量屏蔽全局变量
#include<iostream>#include<queue>int num = 20;using namespace std;void function(int num = 100){ cout << num << endl; cout << ::num << endl; //局部变量屏蔽了全局变量...原创 2019-01-21 11:16:35 · 1591 阅读 · 0 评论