
计算机系统
文章平均质量分 60
qls315
大厂C++
展开
-
十大排序算法详细集合
排序算法大集合源代码如下类的定义 #pragma once#include<iostream>#include<vector>#include<algorithm>using namespace std;class Sort { public: /* *选择排序:首先找到数组中最小的数,其次,将他和......原创 2018-08-01 15:56:23 · 465 阅读 · 0 评论 -
systemd资料汇总
systemd-docsSystemd Essentials: Working with Services, Units, and the JournalUnderstanding Systemd Units and Unit FilesUnderstanding and administering systemd原创 2022-01-10 17:42:37 · 301 阅读 · 0 评论 -
Qt富文本之QTextFrame
下面讲解一个最新的Qt版本中 关于富文本处理的QtextFrame 这个类在以前的版本中 我们可以包含头文件来进行处理,但是利用最新的结合vs2015发现找不到这个头文件,原因是这个头文件变成了Qtextobject中的一个类定义所以只需要包含这个头文件就行了原创 2017-11-28 11:04:54 · 1173 阅读 · 0 评论 -
VS2015+Qt程序运行与发布
最近在学习VS2015上利用Qt做界面,分享一下做的经验。我在VS2015 建立一个He'llWorld文件夹,然后运行程序 在文件夹中得到得到的目录如下:那么HelloWorld可执行文件在哪呢?其实这个文件在X64文件夹Debug文件里面。如下图所示:可以看到,可执行程序。此时运行可执行程序会出错,会提示缺少Qt5Cored.dll文件,这是因为程序运行需要dll动原创 2017-11-01 14:15:30 · 2783 阅读 · 0 评论 -
VS2015+Qt 如何设置窗口左上角图标
讲解了如何利用VS2015进行Qt开发时,将图标改变原创 2017-11-06 15:18:14 · 4451 阅读 · 3 评论 -
python-搭建Django相关环境
0 引言最近在研究Python测试驱动开发 (豆瓣)https://book.douban.com/subject/30259452/在我的mac中搭建相应的环境,并解决碰到的问题,在此总结一下。1 环境配置过程具体过程可参考书本安装Geckodriver此处需要安装最新版本,其连接如下Release 0.30.0 · mozilla/geckodriver · GitHubpython - WebDriverException: Message: Service g..原创 2022-02-13 13:04:59 · 607 阅读 · 0 评论 -
protobuf学习总结
ProtoBuf学习总结)protobuf概念定义Messageproto文件的定义Message 数字域与规则功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表F...原创 2019-09-09 13:13:14 · 264 阅读 · 0 评论 -
C++自制简易版智能指针实现过程分析
1. 引言C++中,由于没有垃圾回收机制,当程序员申请了某些资源(譬如new 某个对象A),如果程序员自己负责释放这些资源,则很可能会产生内存泄露,因此现代C++11引进了智能指针来尽量降低资源泄露的可能。本博客便是我自己在学习more effective C++ 的过程,记录自制简易版智能指针的过程。方便以后复习。2. 智能指针的定义以及粗略实现2.1 智能指针的定义智能指针是看起来、用起来像C++内建指针的对象2.2 智能指针SmartPtr的粗略实现智能指针可以像内建指针一样.原创 2020-06-14 15:32:13 · 436 阅读 · 0 评论 -
APUE学习总结
APUE学习总结apue.h头文件的使用apue.h头文件的使用dirent.h使用详解Linux常用操作指令Linux下如何编译并运行c程序Linux makefile教程Linux 删除文件夹和文件的命令vim简单使用教程TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔......原创 2019-04-12 14:31:49 · 1697 阅读 · 0 评论 -
template系列--decltype与std::declval
引言最近在重新复读《C++ template》相关知识,因此预计总结相关知识汇成template系列。目前碰到decltype与std::declval相关知识,为了搞懂decltype和std::declval的搭配使用原理,我参考了如下链接,decltype specifierWhy does std::declval add a reference?What are unevaluated operands in C++?C++ Templates(第2版 英文版)最终总结原创 2021-10-14 11:46:12 · 476 阅读 · 0 评论 -
上传超过100M的文件到github的步骤(mac)
brew install git-lfs git lfs install git lfs track "*.pdf" 切换到想要上传文件的路径目录下面,后缀为上传的文件名 git add .gitattributes git add filename git commit -m "mesage" git push -u origin master原创 2020-06-23 15:30:52 · 587 阅读 · 0 评论 -
网络编程(1)--socket/bind/listen/accept的简单介绍
网络编程1--socket/bind/listen/accept的简单介绍背景介绍网络编程接口socketbindlistenaccept背景介绍最近在学习APUE和Linux高性能服务编程,记录下自己的学习感悟网络编程接口个人理解, 网络编程接口的关键在于对文件的操作; 在Linux中,网络抽象套接字抽象成文件,网络间通信可以看作两台或者多台主机间 文件的交互。socket#incl...原创 2020-03-18 19:22:00 · 1783 阅读 · 2 评论 -
C++引用计数原理以及简易版引用技数String的实现
1. 引用计数的作用(为什么使用引用计数)引用计数是一项允许多个等值对象共享同一实值的技术。此技术一般由下面两个方向驱动:a. 引用计数可以简化堆对象的薄记工作。一旦某个对象由new 分配出来,则记录该对象的所有者是一件重要的事情,只有该对象的所有者有权删除该对象。引用计数可以消除记录对象所有权的负荷,因为当对象运用了引用计数,他便拥有自己的所有权。b. 引用计数可以使许多等值对象共享同一个实值。如果许多对象拥有相同的值,那么存储多次是一种资源浪费。如果能让这些对象共享同一实值,不仅可以节省原创 2020-06-15 11:53:59 · 520 阅读 · 0 评论 -
C++成员函数修饰词的意义和使用(&, &&, const, override)
1. 引言今天逛知乎,发现有人问在C++成员函数后加& 有什么作用?因此就想着回答一下,就顺带研究了一下C++相关的几个成员函数修饰词,并总结了一下相关的用法和意义2. C++成员函数修饰词C++11中的成员函数修饰词主要有&、&&、const;在这里我把override也看作成员函数修饰词,这个是因为override也可以向&、&&、const用在成员函数后, 但override的作用范围有限,只能用于虚函数且虚函数需要改写的时候。下面从原创 2020-06-19 09:50:45 · 4909 阅读 · 0 评论 -
模版介绍与STL六大组件
模版介绍STL六大组件原创 2021-02-02 19:39:15 · 220 阅读 · 0 评论 -
envoy的热重启
1. 热重启的概念(热重启是什么?)热重启是一种服务部署方式,服务的另一种部署方式为滚动升级。其升级部署形式如下:通过在同一台机器上,将一个服务切换到新服务,而不会造成任何流量损失。2. envoy采用热重启的背景热重启是简单的和容易实现的,目前仍然是被很多组织采用。envoy基于热重启又增加了些许设计目标:a. 整个进程(不仅仅包含配置文件)能够在不损失任何流量的情况下被加载b. 在重启期间envoy的统计信息应该保持一致c. 基于容器的不可变的部署仍然可以采.原创 2020-07-28 20:53:06 · 1694 阅读 · 0 评论 -
《深入理解C++对象模型》+默认构造函数
explict关键字之所以被导入C++,是为了给程序员提供一种方法,使他们能够制止单一参数的构造函数被当做一个转换运算符。《深入理解C++对象模型》关于C++默认构造函数什么时候并合成有四点要求。在介绍这四点要求之前,需要先了解虚基类是如何实现的?虚基类是为了解决多重继承出现的二义性。class X{public : int x;}class A:virtual public X{public :...原创 2018-06-06 11:02:00 · 281 阅读 · 0 评论 -
Linux源代码情景分析之内存管理 总结(1)--地址映射
映射两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,b称为元素a在映射f下的象,记作:b=f(a)。a称为b关于映射f的原象。集合A中所有元素的象的集合称为映射f的值域,记作f(A).地址映射32位CPU的线性地址集合A与计算机实际物理内存地址集合B存在着某种对应关系P,对于集合A中的每一...原创 2019-05-03 16:09:14 · 307 阅读 · 0 评论 -
C++primer 前两章总结
C++primer 前两章总结最近又开始复习C++primer 这本书,突然发现了好多以前没有发现的知识点。进一步加深了自己的理解。特总结如下。目前刚刚看完第一章和第二章。 对于main函数 的return 值,如果返回0,则表示程序正确执行,对于返回的非0值,则对于多数系统而言,其一般定义的是程序的出错码。 基本的数据类型,在计算机中的本质均是位模式,因此 int ...原创 2018-08-06 15:58:59 · 258 阅读 · 0 评论 -
进一步理解C++11中特种成员函数的生成规则
1. 特种成员函数是什么(定义)C++11中的特种成员函数是指编译器会自动生成的函数:默认构造函数、析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符。对于特种成员函数,C++编译器生成的特种成员函数都是public访问级别,且一般都是非虚函数。之所以说都是非虚函数,是因为存在一种情况会使编译器生成的析构函数为虚函数:class A {public: A() { std::cout << "A constructor" <&l原创 2020-06-18 14:39:39 · 287 阅读 · 0 评论 -
C++引用计数原理以及简易版引用技数String的实现(二)
在C++引用计数原理以及简易版引用技数String的实现中,实现了一个简单的引用计数的String,并且也实现了operator []方法。下面考虑这样一种情景: RcString s1 = "hello"; char* p = &s1[1]; RcString s2 = s1; *p = 'x';上述代码 *p = 'x'同时修改了s1和s2, 而意图是仅仅修改s1, 那么如何解决这种问题呢?首先我们分析:为什么*p = 'x' 会导致s1和s2同时被修改呢?原创 2020-06-23 14:52:09 · 189 阅读 · 0 评论 -
Linux VFS(虚拟文件系统)深入理解
Linux VFS(虚拟文件系统)深入理解虚拟文件系统作为内核子系统,为用户程序提供了文件和文件系统的抽象接口。文件系统抽象层VFS使得用户可以实用read()、write()、open()等这种通用接口对所有类型的文件系统进行操作,这是因为内核在它的底层文件系统上建立了一个抽象层---VFS将各种不同的文件系统抽象后采用统一的方式操作。VFS抽象层之所以能够衔接各种类型的文...原创 2018-08-03 11:34:19 · 776 阅读 · 0 评论 -
火焰图相关文档汇总
引言最近因工作需要 需要跑一个火焰图,在网上收集了一些资料,汇总一下,以便需要的时候随时可用。工欲性能调优,必先利其器(2)- 火焰图如何读懂火焰图?动态追踪技术漫谈原创 2021-11-11 17:47:38 · 424 阅读 · 0 评论 -
利用bazel构建tsan相关程序
1 tsan概念可参考相应官网:https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual2 bazel相应配置文件编写build --action_env=BAZEL_LINKLIBS=-l%:libstdc++.abuild --action_env=BAZEL_LINKOPTS="-static-libstdc++:-lm"build --action_env=CCbuild --action_env=CXX原创 2022-01-12 16:56:56 · 937 阅读 · 0 评论 -
template系列--C++中.template含义
背景template关键字主要用在模版声明和定义时,但是关于.template相关的使用和说明,由于平时使用很少所以也很少见到,本文主要讲解一下.template的含义和使用。例子注:本例子仅仅是为了说明.template的含义,关于C++的相应写法很随意,不具有借鉴意义定义的模版如下:template <typename T>class Test {private: T value_{};public: Test(T val) : value_{val} {}原创 2021-03-09 15:00:15 · 3470 阅读 · 0 评论 -
泛型编程与STL读书笔记系列(第十章)
# 基本组件介绍## distancedistance是其他STL算法内部所用的一个基本元素,它会寻找Iterator first与last之间的距离(**将first累加,直到等于last**所需要的次数)。distance 存在的真正原因是作为其他泛型算法所需要的基本元素。关于distance的使用和声明可以参考basic.h.## advanceadvance(i, n)是将iterator i累加n步距离。 如果n > 0, 那就等价于++i执行n次(如果是Random原创 2021-01-21 18:21:47 · 150 阅读 · 0 评论 -
C++11/14 lambda表达式使用及解析
0. 引言最近和同事讨论了一下C++中lambda函数的使用,因此想着周末总结一下lambda相关知识。1. lambda的定义(lambda是什么?)1.1 lambda表达式的定义lambda函数的背景可以看看相关链接https://www.zhihu.com/question/24962794可能非官方。下面看一下C++ Primer 给出的lambda表达式的定义一个lambda表达式表示一个可调用的代码单元。一个表达式具有如下形式[捕获列表] (参数列表)->..原创 2020-07-12 17:53:30 · 2584 阅读 · 0 评论 -
macos配置apue开发环境以及clion编译apue代码时cmake文件的编写
在网上看了很多macOS配置apue的文章,太乱太散,找起来也麻烦,自己总结一份 方便自己查找1. 自己选择一个路径假设路径为A/,在该目录下 运行wget http://www.apuebook.com/src.3e.tar.gz 下载apue.3e源码2. 若是该1提示wget未安装,运行brew install wget 进行安装3. tar -zxvfsrc.3e.tar.gz4. 拷贝apue.h和error.c到 /usr/local/include下cp ./...原创 2020-07-02 10:20:54 · 453 阅读 · 0 评论