笔记
文章平均质量分 51
强里秋千墙外道
钟情于底层技术与C/C++,现在搞网安和.net开发(和别人一起做项目用)。我的理想是做出真正有影响力的东西。
只分享实打实的技术,从不复制粘贴和用标题来搞噱头。
梦想是成为技术圈内公认的大佬
展开
-
googletest使用vcpkg编译
如何使用vcpkg快速安装googletest,相信使用惯了java和python的包管理工具,来到什么都需要编译的C++世界,很多人都不适应。针对C++的包管理,微软提出了解决方案,那就是vcpkg,有几点好处,跨平台的,并且与cmake集成很方便。相当于有了cmake和vcpkg之后,你的项目管理会变得非常方便。原创 2022-12-08 11:32:47 · 854 阅读 · 1 评论 -
leetcode刷题笔记
各类算法题的代码原创 2022-06-19 13:59:18 · 115 阅读 · 0 评论 -
各类排序实现代码-C++版
排序代码原创 2022-07-25 15:10:24 · 349 阅读 · 0 评论 -
cmake学习(CMakeLists.txt写法)
经典的CMakeLists.txt写法:cmake --build . 即compile/link the project脚本自动化生成设置debug的后缀cmake是一个buildsystemcmake的项目是由target定义的,生成目标有可执行程序和库两种,分别用 add_executable() 和 add_library()cmake --open ....原创 2022-06-10 21:08:27 · 535 阅读 · 0 评论 -
[C++] std::string探幽
目录1.前言2.成员变量3.成员函数4. 参考1.前言在C++标准库中,用得最多的应该是std::string类,人们经常使用它,却很少人去研究他的实现,也许要用它某个方法时才去搜索,那么如果程序员对string有深入的了解,可以更有掌控感。众所周知,类是由成员变量和成员函数组成,即属性和行为,那么我将从这两个方面来解析string。2.成员变量有13个成员变量+1个静态变量,静态变量npos是存储此类最大长度的。string实际存储的是char型的.原创 2022-01-29 12:36:36 · 985 阅读 · 0 评论 -
C++ string删除部分字符
std::string::erase官网例子如下// string::erase#include <iostream>#include <string>int main (){ std::string str ("This is an example sentence."); std::cout << str << '\n'; // "This i原创 2022-01-17 09:41:59 · 18353 阅读 · 0 评论 -
C++学习记录
注意构造函数和析构函数,不要在其中调用任何虚函数,因为他会调用基类虚函数std::stringstream支持<<,并且可以输入各种数字,然后再转为std::string,std::string不支持。记得包含<sstream>...原创 2022-01-06 11:30:37 · 391 阅读 · 0 评论 -
给大家看一个不一样的hello world
int main(){ write(1,"hello world\n",13); _exit(0);}虽然有警告,但是好激动,从第一次写程序也有5年了,第一次看到这种写法,不亏是经典哈哈,这是系统级的调用,write第一个参数表示把输出发送到stdout,第二个当然就是要输出的字符串了,第三个就是字节数;来自《深入理解计算机系统》,第3版507页...原创 2021-07-23 20:20:45 · 74 阅读 · 0 评论 -
Qt解析和包装JSON字符串
背景前几天遇到这样一个场景,在S端我要使用C++发送一个json格式的字符串,在C端要解析,所以怎么使用C++来解析和包装json呢?Java里面比较简单,使用Map就可以实现,但是C++不行。经过查询,有两种方法,一种是使用框架nlohmann,一种是Qt支持Json,但是说实话不太人性化,资料也比较少。经过一段时间使用nlohmann,发现如果字符串为空就会报异常,所以我最终还是选择了Qt的方法,毕竟这个项目就是Qt做的嘛,这样一致性好些,也不用再加外来的库了使用包装json格式具体有几原创 2021-07-07 12:43:10 · 1039 阅读 · 2 评论 -
用番茄工作法集中注意力
番茄工作法可以训练专注能力,这种工作法有五个基本步骤:决定要完成的任务 把番茄计时器设为25分钟 开始执行任务,直到计时器响 稍微休息一下(一般5分钟) 每完成四个“番茄”工作时段,就多休息一会(一般15-20分钟)在工作时段里,要全神贯注,不要做其他事。休息时段里就可以玩玩手机,看看新闻之类的...原创 2021-06-27 17:20:50 · 138 阅读 · 0 评论 -
在实习一周后,突然想写点东西
在实习过程中,我发现程序员的工作不是教科书上面的写代码,在实际的应用环境中,会用到很多其他的知识,所以才需要我读大学里面的操作系统、编译原理等等,当时可能觉得没什么用,但其实只有程序员拥有了综合知识后才会有解决问题的能力。 在上上周,我结束了英语的学习,结束前我并没发现自己的英语水平上升,但这几天在阅读qt官方网站时,突然发现自己的水平上升很多。...原创 2021-06-27 17:16:22 · 75 阅读 · 0 评论 -
Python2和3的c api不兼容的解决办法
如果用C写Python api遇到:PyString_AsString找不到了加入如下预定义/*----------------------------------------------------------------------- 该头文件包含兼容Python 2和Python 3的宏,要先包含Python.h-----------------------------------------------------------------------*/#if PY_MAJOR_V原创 2021-06-24 14:44:50 · 856 阅读 · 0 评论 -
代码的境界
马斯洛金字塔是美国心理学家马斯洛提出的一个心理学模型,认为人类的心理需求从下往上分为5个层次,一旦实现了下层的需求,就会追求上一层的需求。这五个层次依次是:生理需求、安全需求、社交需求、尊严需求、自我实现。代码质量也可以用金字塔模型表示,从下往上有五个层次。(1)第一层:正确(Correct)代码是否执行预期的工作?是否考虑了边缘情况?是否经过充分测试?是否有可维护性?是否有可接受的性能?(2)第二层:安全(Secure)代码是否存在漏洞?数据是否安全存储?个人识别信息(PII)是否得到正确转载 2021-05-23 16:24:34 · 88 阅读 · 0 评论 -
Google Test简述
Google Test简述Google Test是C++测试框架。特点跨平台不止单元测试稳定并且可重复提供足够的失败信息快速线程安全如何使用?Google Test需要编译,同时确保头文件可以被编译器找到。使用cmake编译:git clone https://github.com/google/googletest.git -b release-1.10.0cd googletest # Main directory of the cloned rep原创 2021-05-13 21:26:16 · 13505 阅读 · 0 评论 -
git常用命令学习
仓库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史配置$ git clone [url]# 设置提交代码时的用户信息,要生成ssh公钥,然后将其添加到git服务器上$ git config [--global] user.name "[name]"$ git config [--global] user.email "[email address]"转载 2021-05-11 21:01:10 · 61 阅读 · 0 评论 -
Qt和C++学习笔记
记录我的Qt的知识点,里面是无序的,按照我学到哪里就写到哪里QWidget类是所有用户界面的基类,被称为基础窗口部件。QWidget的构造函数有两个参数:QWidget * parent = 0,和Qt::WindowFlags f = 0,前面的parent指父窗口部件,默认值为0,表示没有父窗口,而后面的f参数是Qt::WindowFlags类型,是Qt::WindowType枚举类型值或其组合,f=0表示窗口类型的值为Qt::Widget,这是QWidget的默认类型,这种类型的部件如果有父窗口,原创 2020-12-31 10:49:53 · 291 阅读 · 0 评论