自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhang0peter的博客

CSDN博客不更新,后续更新:https://zhang0peter.com/,联系我:zhang0peter@foxmail.com

原创 C++ 协程介绍[译]

此文翻译自:COROUTINES INTRODUCTION 在很长时间的争论,反对和准备后,WG21(ISO C++ Committee) 统一了在C++20中coroutines (协程)的具体实现。这是一个巨大的feature,我们需要提前学习。 有很多人反对这个特性,很多人抱怨协程很难懂以及...

2019-08-29 15:09:50 1346 0

原创 perf报错解决:no symbols found in /bin/dash, maybe install a debug package?和was updated (is prelink enabl

下午在使用perf的时候报错如下: -> # perf script > out.perf no symbols found in /bin/dash, maybe install a debug package? 这2个报错是因为我用了zsh,用bash就没有这个报错了。 然后有...

2019-08-28 16:38:42 366 0

原创 Linux下使用perf进行性能分析,并导出火焰图

perf的安装参考这篇教程:debian/ubuntu 安装和使用perf 记录: perf record -F 99 -a -g -- sleep 60 #perf record -F 99 -p PID -g -- sleep 60 #使用-p指定pid perf script > o...

2019-08-28 16:26:48 549 0

原创 C++ 汇编代码查看

文章目录gcc 编译为汇编代码使用 as 展示汇编代码使用 objdump 进行反汇编使用 godbolt 可视化结果 gcc 编译为汇编代码 原始C++代码如下: #include "stdio.h" class Animal { public: virtual v...

2019-08-28 15:26:48 1899 0

原创 《C++语义和性能分析》读书笔记

页数:203 字数:287千字 版次:2017年11月第一版 阅读完成日期:2019-8-23 今天看完了这本书:《C++语义和性能分析》,这本书挺薄的,只有200面,花费了我1天半的时间把书完整的看了一遍。 书里第一章介绍C++背景的内容感觉是最值得看的一章,讲到了C++的一些设计思路,还是对...

2019-08-28 11:42:24 146 0

原创 C++ 虚函数个人理解

C++中的虚函数指的是class类中加上了关键字virtual的函数。 虚函数的意义在于动态绑定,也就是说父类指针可以调用子类的函数实现,示例如下: #include "stdio.h" class Animal { public: virtual void name...

2019-08-27 19:29:55 126 0

原创 面试必问的分布式相关内容(未完待续)

1.CAP定理 对于一个分布式系统,不可能同时满足以下三点: 一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance) 而一个分布式系统最多只能满足其中的两项。 2.两阶段提交(2PC) 3.Basic Paxos 这里说一下《Pa...

2019-08-27 15:47:46 113 0

原创 C++ 内存泄漏检测:valgrind和AddressSanitizer

推荐使用工具valgrind,安装: sudo apt install valgrind #debian/ubuntu 内存泄漏示例代码如下: /* code with memory leak */ #include <stdio.h> #include <stdlib.h&...

2019-08-27 14:32:32 105 0

原创 面试必备的C++知识(未完待续)

C++ 内存管理 C++中内存分为5个部分:堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈:函数中的局部变量存在栈上,在函数结束后自动释放空间。栈空间比较有限。 堆:堆是new class存放的地方,需要我们手动delete进行空间的释放。 自由存储区:就是那些由malloc等分配的内存块...

2019-08-27 12:14:06 51 0

原创 一次失败的尝试:Ubuntu 故障修复

今天在用vmware的ubuntu虚拟机的时候,发现ssh连不上,图形界面输入密码后也进不去。 出现如下报错: removed slice user slice of... 然后我在开机过程中按shift键,选择recovery mode。 进入后报错: [FAILED] Failed to s...

2019-08-26 17:08:04 188 0

原创 LeetCode 509. Fibonacci Number--Python解法

LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专栏里,大部分题目Java和Python的解法都有。 题目地址:Fibonacci Number - LeetCode The Fibonacci numbers, commonly denoted F...

2019-08-24 18:50:35 276 0

原创 LeetCode 75. Sort Colors--Python解法

LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专栏里,大部分题目Java和Python的解法都有。 题目地址:Sort Colors - LeetCode Given an array with n objects colored red, whi...

2019-08-24 17:36:00 57 0

原创 牛客网做题注意事项

有些题目是没有终止符的,需要一直输入,这种情况需要代码这么写: while 1: try: x=input() pass except: break C++代码如下: while(scanf("%d",&...

2019-08-24 17:13:50 287 0

原创 LeetCode 159. Longest Substring with At Most Two Distinct Characters --Java,C++,Python解法

LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专栏里,大部分题目Java和Python的解法都有。 题目地址:Longest Substring with At Most Two Distinct Characters - LeetCode Giv...

2019-08-24 12:08:02 304 0

原创 解决Linux最大进程数和最大文件句柄问题

ulimit -u 10000 #设置每个用户最大进程数位100000 ulimit -n 65535 #设置每个进程的最大文件句柄数

2019-08-23 11:14:16 267 0

原创 Python 3/前端 画图工具:Matplotlib,canvajs,pyecharts

之前我一直是用Matplotlib画图,写了挺多博客: Python:matplotlib绘图时指定图像大小,放大图像 matplotlib绘制平滑的曲线 Matplotlib使用日期作为横坐标 matplotlib 设置坐标轴单位 Matplotlib画图示例如下: import matpl...

2019-08-22 20:13:40 334 0

原创 debian/ubuntu 上安装和使用 Emacs

直接进行安装: sudo apt update sudo apt install emacs 在debian 9上安装的版本是emacs24,在ubuntu 18.04上安装的版本是emacs25,目前最新版是emacs26,如果想安装最新版,需要从源码编译安装:GNU Emacs downlo...

2019-08-22 11:59:56 1016 0

原创 Windows和Linux的C/C++ IDE选择

在Windows上写C++,对于C++初学者,我推荐Dev-C++。 Windows上进行C++开发,自然会提到Visual Studio,但我用vs比较少,不好提建议。 之前有段时间我会用sublime写C++代码,比较sublime的高亮看起来很舒服。 现在我也在使用CLion,CLion的缺...

2019-08-22 10:29:00 414 0

原创 C++ CORE DUMP gdb 调试

先查看内存转储的大小限制: ulimit -c 返回的结果是以512 bytes为单位的。 如果没有返回结果,说明设置为0,需要进行手动设置:ulimit -c unlimited 测试代码: #include <stdio.h> void foo() { int *ptr ...

2019-08-21 20:14:37 177 0

原创 C++ 调试技术:addr2line

最常用的调试C++程序的方法是使用IDE,,比如说vs,clion。打断点,debug模式跑。 稍微先进一点的是使用gdb进行调试。 gdb调试使用到的技术就比较多了,以后详细介绍。 今天看到一个神奇的命令addr2line,这个命令可以在程序 core dump的时候告诉你程序在哪一行出错。 示...

2019-08-21 16:43:16 283 0

原创 RocksDB 的Put操作和WriteBatch操作

直接从GitHub上clone下来RocksDB的源码。 RocksDB的put操作的声明代码在头文件include/rocksdb/db.h中: // Set the database entry for "key" to "value". // ...

2019-08-21 10:11:40 1249 0

原创 LeetCode 1119. Remove Vowels from a String--C++,Java,Python解法

LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专栏里,大部分题目Java和Python的解法都有。 欢迎大家关注我的专栏。 题目地址:1119. Remove Vowels from a String Given a string S, remov...

2019-08-20 10:04:02 249 0

原创 C++ 常用技巧

文章目录1.派生类实现的父类虚函数后加上关键字 override 表示重载。2.class内的函数打出函数名和类名3.C++多线程detach--后台线程 1.派生类实现的父类虚函数后加上关键字 override 表示重载。 参考:c++11 - virtual? override? or bot...

2019-08-19 20:16:44 75 0

原创 C++ 随机数生成的2种方法--生成指定范围内的随机数

第一种是传统的方法: #include <iostream> using namespace std; int main() { srand(NULL); for (int i = 0; i < 100; i++) { cout <<...

2019-08-19 17:59:05 1769 0

原创 C++报错解决:what(): basic_string::_S_construct null not valid

terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid 出现这个错误是因为用空指针初始化str...

2019-08-13 21:27:27 1600 0

原创 vmware虚拟机ubuntu开机黑屏问题解决

早上开ubuntu虚拟机的时候发现开机界面可以显示,但进去后就黑屏了。 我感觉是图形界面的问题,于是尝试ssh连接,连上了,查看内核情况: #dmesg [ 6.065797] cryptd: max_cpu_qlen set to 1000 [ 6.094021] NET: Regi...

2019-08-13 10:29:31 2624 3

原创 C++调用openssl使用sha256,并取结果前64位作为uint64

参考:unix - Generate sha256 with OpenSSL and C++ - Stack Overflow 代码如下: #include "openssl/sha.h" #include <string> #include <iostrea...

2019-08-12 16:44:14 870 0

原创 rocksdb报错解决:librocksdb.a(format.o): In function `Zlib_Uncompress':

在使用rocksdb的时候遇到了报错: build64_release.rep125/my_kv/rocksdb-6.1.2/librocksdb.a(format.o): In function `Zlib_Uncompress': /home/xxx/rocksdb-6.1.2/./...

2019-08-12 14:07:13 301 0

原创 CLion报错解决:allocating an object of abstract class type--unimplemented pure virtual method

在用CLion写代码时遇到了这个报错: allocating an object of abstract class type '...' unimplemented pure virtual method '...' in '...' ...

2019-08-08 17:58:38 986 0

原创 rocksdb批量删除指定前缀的key或者查找指定前缀开始的key

wiki:DeleteRange · facebook/rocksdb Wiki 批量删除指定前缀的key原先的做法: Slice start, end; // set start and end auto it = db->NewIterator(ReadOptions()); for ...

2019-08-07 21:19:57 1567 0

原创 C++ map的使用

文章目录使用插入更新比较2个map是否相同 最近在学C++,想到Python中有字典,dictionary;C++中叫map,跟Java中的名字一样。 使用 想使用std::map,需要先#include <map>。 使用方法如下: #include <map> int ...

2019-08-05 20:05:00 294 0

原创 debian/ubuntu 安装和使用perf

debian操作如下: apt install linux-perf root@VM-73-203-debian:~# perf --version perf version 4.9.168 ubuntu操作如下: apt update && apt upgrade apt-g...

2019-08-05 18:12:09 2319 0

原创 Python 3 判断2个字典相同

Python自带的数据结构dict非常好用,之前不知道怎么比较2个字典是否相同,做法是一个一个key比较过去。。。 现在想到可以直接用==进行判断!!! a = dict(one=1, two=2, three=3) b = {'one': 1, 'two'...

2019-08-05 15:11:21 6749 1

原创 程序员如何写好设计方案

最近自己在写设计方案,改了挺多版的。感觉设计方案的书写也很有讲究。 我们程序员写设计方案跟产品经理写设计方案不一样。产品经理写的设计方案是真正的设计方案,因为他不知道应该怎么实现这个内容。 程序员在写设计方案的时候很可能已经想好了代码应该怎么写,用什么数据结构,甚至会把实现的代码直接放在设计方案上...

2019-08-04 16:36:04 432 1

原创 报错解决:Downloading VS Code Server failed. Please try again later.

之前写过教程: Windows下使用VS Code远程SSH连接Linux服务器进行开发 vscode 使用ssh密钥登录远程Linux – vscode remote linux ssh key

2019-08-02 19:27:03 8832 2

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