自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(412)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++Primer学习笔记:第1章 开始

本博客为阅读《C++ Primer》(第5版)的读书笔记第1章 开始在大多数系统中,main的返回值被用来指示状态。返回值0表示成功,非0的返回值的含义由系统定义,通常用来指出错误类型。在Unix中程序运行以后返回值保存在$?中(必须在刚运行后打印输出)编译时可能需要加上-std=c++11打开对C++11标准的支持,一般会加上-Wall参数,可以对有问题的程序结构发出警告如果想要通过打印语句进行调试,一定要及时使用endl操纵符刷新流,否则如果程序崩溃,可能无法得到输出信息,从而导致关于程序崩溃

2020-10-26 19:48:58 240 2

原创 rpm打包新手入门

RPM(Red Hat Package Manager)是一种软件包管理工具,主要用于Red Hat及其衍生发行版如Fedora、CentOS等。RPM可以帮助用户方便地安装、升级、删除软件包。通过学习rpm包的相关知识,我们可以将自己的软件打包成rpm包,以便于在基于Red Hat的Linux发行版(如Fedora、CentOS等)上进行分发和安装。

2023-10-11 15:08:06 349

原创 C++ 条件变量的使用

并发编程纷繁复杂,其中用于线程同步的主要工具——条件变量,虽然精悍,但是要想正确灵活的运用却并不容易。希望大家看完下面的介绍能够得到想要的答案。

2022-11-16 13:03:51 1268 3

原创 C++ 模板函数、模板类:如果没有被使用就不会被实例化

C++ 模板函数、模板类 使用和实例化的关系

2022-11-15 18:47:28 780

原创 C++ STL中的allocator

STL allocator剖析

2022-10-25 15:46:24 889 2

原创 C++不要让函数返回一个右值引用

在C++中如果我们让函数返回一个右值引用会发生什么?结论是不要让函数返回右值引用。

2022-10-17 19:40:48 753 1

原创 Leetcode第314场周赛

Leetcode第314场周赛总结

2022-10-10 14:03:02 297

原创 Leetcode第 313 场周赛

Leetcode第 313 场周赛总结

2022-10-03 12:41:31 384

原创 为什么x&-x可以获取x的最低位的1?

证明通过x&(-x)可以获取x最低位的1

2022-09-27 12:00:36 315

原创 850. 矩形面积 II:扫描线+离散化+线段树

Leetcode 850. 矩形面积 II

2022-09-19 10:23:47 292

原创 面向对象技术浅析

蒟蒻讲一下自己对面向对象的理解

2022-09-17 17:06:50 377

原创 Leetcode第309场周赛

Leetcode第309场周赛总结

2022-09-05 22:36:03 589

原创 Ubuntu install ‘Bash to dock‘

Ubuntu安装Bash to dock

2022-08-17 16:33:43 293

原创 C++ map/unordered_map元素类型std::pair<const key_type, mapped_type>陷阱

我们要千万小心`map`和`unordered_map`的元素类型为`std::pair`,如果忘记`const`可能会不小心产生拷贝操作,不仅仅会带来性能损耗,而且可能会产生RuntimeError。

2022-07-14 16:16:46 479

原创 muduo网络库使用入门

使用muduo网络库实现一个简单的echo服务器学习如何使用

2022-07-11 18:08:16 1890

原创 C++ 工具函数库

在写一些大型项目的过程中经常需要一些工具函数,例如获取随机数、计时器、打印函数、重要常量(如最大值)等,由于每一个工程都自己手动实现一个实在是太傻,我将其总结放入一个文件中。.........

2022-07-09 10:33:31 500

原创 C++高效集合数据结构设计

在复杂算法实现过程中我们经常会需要一个高效的集合数据结构,支持常数级别的增、删、查,以及随机返回、遍历,最好还能够支持交集、并集、子集操作

2022-07-04 16:09:24 678

原创 每日一题:449. 序列化和反序列化二叉搜索树

题目分析题目链接:449. 序列化和反序列化二叉搜索树觉得序列化很简单,前序遍历、后序遍历、中序遍历、层序遍历等等。其中得到前序遍历和后序遍历是可以通过递归解法反序列化的,觉得这样子做有点复杂。就想着可不可以一次遍历。一次遍历的问题在于不知道哪里子孩子为空(因为没有保存子孩子为空的情况)。所以我就针对性地让空节点的值为-1。为了方便从字符串中读取数字,使用了C++中的istringstream。整体的实现还是比较简洁高效的。实现代码class Codec {public: // Enco

2022-05-11 21:36:45 188

原创 C++读写锁造成死锁

C++14支持std::shared_timed_mutexC++17支持std::shared_mutex前者相比后者支持的操作更多,但是后者相对性能更好。使用std::lock_guard<std::shared_mutex>和std::unique_lock<std::shared_mutex>互斥访问使用std::shared_lock<std::shared_mutex>实现共享访问(C++14),使用方式和std::unique_lock相同多个

2022-05-10 19:25:14 1049

原创 C++ 单例模式 call_once : terminate called after throwing an instance of ‘std::system_error‘

使用C++11中的call_once实现单例模式,解决出现的 'terminate called after throwing an instance of ‘std::system_error'问题

2022-04-29 11:52:08 5064 5

原创 Clion远程部署和运行

绪论作为Clion的忠实粉丝,现在的我的几乎所有的coding都是通过Clion完成。因为需要在服务器上进行开发,又离不开Clion,就了解了如何通过Clion远程部署和开发。主要是借鉴了博客:使用Clion优雅的完全远程自动同步和远程调试c++。如果我哪里没有讲清楚可以去借鉴一下这篇博客。我们的目标是在本地进行编码,运行在服务器上。设置远程工具链更新/安装cmake借鉴了博客:在Linux上安装其他版本的cmake 或 升级cmake首先我们需要保证服务器上的cmake版本至少为3.19,否

2022-04-20 15:05:54 1989 1

原创 第288场周赛

绪论虽然没有AK,但是不知道为什么排名比以前AK了都靠前。可能是因为最后一道题有些难度,缩小了我和大佬之间的差距。最后一个小时写最后一道题,累死累活想了一个贪心遍历的算法,当时是一直RE,后来下来调了调又WA了。题目分析A: 按奇偶性交换后的最大数字做法就是用一个数据结构去保存奇数数字和偶数数字,要求这个数据结构能够返回并弹出最大值。当时没有仔细考虑,直接用了一个multiset去保存,因为红黑树本身就是有序的,所以每次弹出最后一个节点。但是因为把前置–写成后置–了,所以还RE了一发,实在不应该。现

2022-04-11 22:23:00 353

原创 第287场周赛

绪论虽然是上周日参加的比赛,但是这周没有怎么学习,每天就是玩耍。也导致对周赛的总结迟迟没有进行。想着再拖下去下次周赛都要开始了,在这里补一下。这场比赛总体比上场简单一些,但是最后一道题因为忘记初始化类内变量导致调试好久,血泪教训。题目分析A:转化时间需要的最少操作数因为单独考虑小时、分钟太过繁琐,我的方法是将其转换成时间戳(类似chrono的time_since_epoch方法)。class Solution {public: int convertTime(string curre

2022-04-08 10:37:41 891

原创 Leetcode第286场周赛

绪论上周因为有事没有参加周赛,这周没有错过。这次周赛拿到了人生第一个AK,参加大大小小的比赛这么多次,从来没有AK过,泪目了。感觉这次比赛的思维难度对我来讲稍高一些,前三道题就花了一个小时,而以往只需要半个小时。看了一下排名前面的大牛们,还是十分钟就AK了,深觉自己还马达马达大内。题目分析比赛链接:https://leetcode-cn.com/contest/weekly-contest-286/题目难度上第二题和第三题都有一些思维量,不像以前直接模拟。第四题我直接记忆化搜索在最后一分钟过了

2022-03-28 14:20:42 520

原创 Leetcode第284场周赛

绪论最近发现Leetcode每周的周赛难度挺适合我的,而且时间也比较友好(不像Codeforces每次都是半夜)。所以连续参加了三周的周赛。这次才想起来应该记录一下自己的参赛历程。一方面是总结经验,另一方面有了记录就更有动力去提升,去参加下一次比赛。题目分析题目链接:https://leetcode-cn.com/contest/weekly-contest-284/还是往常一样四道题,难度依次提升。A:找出数组中的所有 K 近邻下标简单模拟,对于每一个key,其附近的2k+1个元素都是合法的

2022-03-14 10:32:27 876

转载 Ubuntu修复Fix Busybox Initramfs错误

今天早上我打开电脑,进入Ubuntu系统,结果黑屏了,屏幕显示:BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.1) built-in shell (ash) Enter 'help' for a list of built-in commands.(initramfs)然而我并不知道这个是什么意思,只能打开万能的谷歌搜索了一下,找到一篇解决问题的教程,按照他说的,我输入了exitfsck /dev/sda1 -yreboot然后解决了问题。虽然我

2022-01-21 16:03:54 1202

原创 C++ Variadic Templates(可变参数模板)

本文参考侯捷老师的视频:https://www.youtube.com/watch?v=TJIb9TGfDIw&list=PL-X74YXt4LVYo_bk-jHMV5T3LHRYRbZoH以及C++ primer第五版 相关内容。可变参数模板函数//递归的终止条件void print() {}//Variadic Templates//一般用于递归处理template <typename T, typename... Types>void print(const T&a

2021-12-13 15:09:38 489

原创 使用wireshark+ssh+tcpdump远程抓包

因为需要抓取远程服务器上的数据包,又不想使用tcpdump这种命令行工具进行(用了wireshark后谁还愿意去看密密麻麻的命令行呢),所以在网上查找了一下使用wireshark远程抓包的方法,在这里记录一下。原生支持wireshark本身是支持远程抓包的,不过可能是因为我是Ubuntu下的wireshark的缘故,所以没有远程连接的选项。我刚开始怀疑是我的版本过低,卸载后重新安装,现在的版本是Wireshark 3.4.8 (Git v3.4.8 packaged as 3.4.8-1~ubuntu

2021-11-18 14:36:27 3446

原创 leetcode869. 重新排序得到 2 的幂

题目连接:https://leetcode-cn.com/problems/reordered-power-of-2/题目分析如果直接顺着题目的思路,得到数字n的全排列,然后再去判断其是不是2的幂是比较复杂的。我们应该注意到,因为数字是可以随意排列的,因此所有可以通过变换排列得到的数字都有相同个数的0、1、2,而n⩽1e9n\leqslant1e9n⩽1e9,2的幂只有30个左右,我们可以先记录2的幂次然后再判断当前数字是不是和这些数字有相同的数字组合。AC代码class Int { st

2021-10-28 10:42:01 85

原创 UVA - 442:Matrix Chain Multiplication

题目链接:https://vjudge.net/problem/UVA-442题目分析题目的意思非常简单,就是给定一个矩阵乘法的表达式然后计算就可以了。随便写写AC代码#include <iostream>#include <deque>#include <vector>#include <string>#include <unordered_map>using namespace std;int ans;class M

2021-10-23 21:53:57 113

原创 UVA - 514:Rails

题目链接:https://vjudge.net/problem/UVA-514题目分析题目的意思是给一个栈输入一系列数据,在这个过程中可以出栈,看能否达到某个结果。刚开始我觉得这个情况好多,因此不是用模拟,而应该观察结果本身。对于结果中某个元素x,比他小的元素肯定已经入过栈了,此时可能有两种去处:已经在结果里面了还在栈里面对于1.,只能说它比x 小而且在x的前面,除此之外没有其他约束了。对于2.,那些比x小的元素在结果中的位置肯定在x的后面,而且肯定是逆序排列。因为只能进栈一次,而他们是从

2021-10-21 17:08:58 287

原创 UVA - 210:Concurrency Simulator

题目链接:https://vjudge.net/problem/UVA-210题目分析就是一道模拟题,但是细节有点多。写代码两个小时,调试代码用了两天。。。很长时间不刷题了,这道虽然算法简单但是细节满满的题目对我来说是一个很好的热身。尽量不要去使用匿名名字空间,发现对调试过程不怎么友好(陈硕大大说的对)。使用枚举类型对程序的可读性、可维护性的提升非常大重载输入输出运算符的时候一定要记得返回stream对象这种带有switch语句的,可以使用Stragety模式,这里没有使用,因为每条语句只有

2021-10-20 22:53:51 249

原创 Educational Codeforces Round 114总结

绪论https://codeforces.com/contest/1574/以前想要打CF,总是觉得没有时间,要做这个,要做那个,现在时间充裕了一些,想要多打一些CF,但是光打比赛不总结是没有什么帮助的,这是我从以前的ACM训练中吸取的惨痛教训。从这篇文章开始准备好好总结一些比赛心得。这场比赛是for div2的,因此对我来讲有些难度,我发挥的不是很好,然后理所当然就掉分了(掉了50+,哭哭)A解题思路要求构造正确的括号组合,即每一个左括号有一个相应匹配的右括号,要求给定括号对数n,输出其n种组

2021-09-23 16:40:04 103

原创 vim命令笔记

vim折叠函数:https://www.cnblogs.com/zlcxbb/p/6442092.html

2021-09-10 10:26:43 81

原创 UVa-12333:Revenge of Fibonacci 高精度

之前自己仿照紫书上写了高精度库,完善了乘法、减法,并且通过了和C++高精度库GMP的对拍测试,也一些OJ上过了一些高精度的模板题,代码仓库地址:https://github.com/Edward-Elric233/BigInt求解思路题目的意思是求前100000斐波那契数列中某个前缀(不超过40个字符)第一次出现的位置。刚开始我的想法很简单,先求出这十万个斐波那契数列的前缀,然后每次读入的时候查找一遍就可以了,结果超时了。每次查找的复杂度是O(1e5∗40)O(1e5 * 40)O(1e5∗40),有5

2021-08-08 21:14:59 134

原创 Qt for Android环境配置

最近想写一个小APP,但是又不想用Android Studio进行开发,想要用C++进行开发,听说Qt可以进行Android开发,就想尝试一下,结果花了一天时间来配置环境。。。而且发现windows下配置环境更简单一些(我中途还切换到Ubuntu以为会更简单,结果碰壁又回头在Windows下开发),反正qt支持跨平台,在哪个平台进行编码影响不大。首先需要Android Studio下载Android SDK,我下载的是最新版本,我在这里没有遇到什么问题。然后需要下载NDK,在网上看到许多教程都说在An

2021-08-04 21:36:25 601 2

原创 C++ array初始化需要双层大括号

对于array的初始化我们可以使用列表初始化:array<int, 8> test = { 1, 2, 3, 4, 5, 6, 7, 8};但是当我们不再使用简单的内置类型array时:array<pair<int, int>, 8> dirs = { {-1, -1}, {-1, 0}, {-1, 1},

2021-07-24 16:27:21 1657

原创 UVA - 1592:Database

题目的意思是找到两行在两列处相等,主要要做的是记录某个值是否重复出现过。经过思考,我的思路是:每一列用一个unordered_map<string,vector<int>>记录单词出现的行数,对于某一行中的两列,如果有两个元素在同一其他行出现了重复,则可以输出结果例如,第4行的第1个元素在1 3 5 6行都出现了重复,第4行的第2个元素在2 3行出现了重复,则r1 = 3; r2 = 4; c1 = 1; c2 =2;每一行用一个数据结构保存每一列在哪些行出现了重复,如果某一行

2021-06-27 17:42:43 131

原创 UVA - 400:Unix ls

题目的难点在于要求前面的每一列的是

2021-06-26 20:26:27 95

原创 GMP使用入门

最近写了一个高精度的模板,想要用GMP库测试一下,总结一下GMP环境的搭建。大佬博客:GMP大法教你重新做人(从入门到实战)解压.tar.lz的 时候可能会遇到一点问题,可以参考这个博客:.tar.lz压缩包解压...

2021-06-24 11:23:36 790

bandicam 2020-05-04 15-22-58-050.mp4

该视频是我汇编课程设计实验的运行结果,为了方便在博客中展示运行结果进行上传,没有什么用,啦啦啦啦啦啦

2020-05-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除