
c++
文章平均质量分 75
小明乐
和时间赛跑,尽自己一切努力,让家人过上好日子,
展开
-
mongodb C++ ubuntu 20.in vscode 全记录
apt-get install cmake libssl-dev libsasl2-dev安装编译所需要的软件 ;如果没有gcc,g++,gdb也请安装好;wget https://github.com/mongodb/mongo-c-driver/releases/download/1.21.1/mongo-c-driver-1.21.1.tar.gztar xzf mongo-c-driver-1.21.1.tar.gzcd mongo-c-driver-1.21.1mkdir cmake原创 2022-04-05 15:48:18 · 1434 阅读 · 0 评论 -
sha1散列算法详解示例
//python3res = '123456' print(hashlib.sha1(res.encode('utf-8')).hexdigest())//输出: 7c4a8d09ca3762af61e59520943dc26494f8941bSHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。对于任意长度的明文,SHA1首先对其进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。对于每个明文分组的摘要生成过程.原创 2021-08-08 10:58:57 · 3424 阅读 · 1 评论 -
git hub.开源
标准库C++标准库,包括了STL容器,算法和函数等。 C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Template Library:标准模板库 C POSIX library : POSIX系统的C标准库规范 ISO C++ Standards Committee :...转载 2019-03-08 11:05:27 · 1126 阅读 · 1 评论 -
内核通知链原理及机制 linux c++ IP变动 通知 信号
内核通知链不是一个很复杂的东西,但是在内核中应用却很重要,当然也有很多人写过它的文章,当然这里写只供学习之用. 参考资料《深入理解linux网络内幕》,网络上一些文章. 通知链只在内核子系统之间使用,内核和用户空间的通知信息由其他机制来处理,比如ioctl. 内核源码参考: incllude/linux/notifier.h ...转载 2019-04-29 08:17:58 · 488 阅读 · 0 评论 -
C++11_学习笔记
Vector(std::initializer_list<double>) //{1.2,12.3,111.2}关键字virtual的意思是可能随后在其派生类中重新定义;含有纯虚函数的类称为抽象类;Vector::Vector(Vector&& a):elem{a.elem},sz{a.sz}{ a.elem = nullptr; a.sz = 0;...原创 2019-04-25 17:11:08 · 3472 阅读 · 1 评论 -
typename
1. //在C++中typename一般用来声明模板的模板参数(template parameter): template<typename T> class X; //T是一个模板参数 2. /*但是还有一个关键的用法。首先是两个概念: 1). qualified name 例如:std::cout, std::endl;这样含有作用域符号(::...转载 2019-05-16 10:21:47 · 1129 阅读 · 0 评论 -
C++位域
位域的语法是通过在变量名的后面加冒号,然后再带位数声明的。struct st1{ unsigned int a : 2; unsigned int b : 3; unsigned int c : 4;};struct st2{ int a : 16; int b : 17;};struct st3{ int a : 2; ...转载 2019-06-22 10:11:58 · 276 阅读 · 0 评论 -
C++11 enable_if 详解
enable_if<>这个概念,以前从没有遇到过,这里做个小记。/*----------llvm/include/llvm/ADT/Hashing.h------------*//// \brief Compute a hash_code for any integer value.////// Note that this function is intended to c...转载 2019-06-24 13:58:03 · 8668 阅读 · 2 评论 -
Boost_学习笔记
安装:先执行根目录下的.bat文件;(注意安装编译工具)b2.exe install --prefix="F:\Boost\x64" --build-type=complete --toolset=msvc-14.2 threading=multi --build-type=complete address-model=64b2.exe install --prefix="F:\Boos...转载 2019-07-29 20:44:06 · 483 阅读 · 0 评论 -
C++ 11 Thread
在一个线程的生存期内,可以在多种状态之间转换,不同的操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态,但大体来说,如下几种状态是通用的:1)就绪:参与调度,等待被执行,一旦被调度选中,立即开始执行2)运行:占用CPU,正在运行中3)休眠:暂不参与调度,等待特定事件发生4)中止:已经运行完毕,等待回收线程资源线程环境:线程存在于进程之中,进...原创 2019-08-10 15:35:07 · 230 阅读 · 0 评论 -
condition_variable
<condition_variable>头文件主要包含了与条件变量相关的类和函数。相关的类包括 std::condition_variable和 std::condition_variable_any,还有枚举类型std::cv_status。另外还包括函数 std::notify_all_at_thread_exit(),下面分别介绍一下以上几种类型。std::condition_...翻译 2019-03-09 17:37:35 · 836 阅读 · 0 评论 -
互斥(Mutex: Mutual Exclusion)
互斥(Mutex: Mutual Exclusion)下面的代码中两个线程连续的往int_set中插入多个随机产生的整数。 1234567891011121314 std::set<int> int_set;auto f = [&int_set]() { try { std::rand...转载 2019-03-09 17:34:07 · 1708 阅读 · 0 评论 -
C++11 std::chrono库详解
所谓的详解只不过是参考www.cplusplus.com的说明整理了一下,因为没发现别人有详细讲解。 chrono是一个time library, 源于boost,现在已经是C++标准。话说今年似乎又要出新标准了,好期待啊! 要使用chrono库,需要#include<chrono>,其所有实现均在std::chrono namespace下。注意标准库里面的每个命名...转载 2018-12-30 13:41:40 · 697 阅读 · 0 评论 -
C++程序设计语言1-3部分:笔记
虚函数:常见的做法是编译器将虚函数的名字转换成函数指针表中对应的索引值,这张表就是所谓的虚函数表(vtbl)每个含有虚函数的类都有自己的vtbl用于辨识虚函数;return unique_ptr<Shape> {new Circle{p,r}}基于上述定义,编译器将选择移动构造函数(move constructor)来执行从函数中移出返回值的任务,这意味着r=x+y+z不需要再...原创 2019-01-06 17:18:36 · 677 阅读 · 0 评论 -
C++输入输出流
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O. stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以...转载 2019-01-16 15:55:48 · 403 阅读 · 0 评论 -
C++ google code style.
原创 2019-01-16 16:40:57 · 1104 阅读 · 0 评论 -
内存对齐alignof,alignas(64),alignas(),alignas
1. 内存对齐(Data Structure Alignment)是什么内存对齐,或者说字节对齐,是一个数据类型所能存放的内存地址的属性(Alignment is a property of a memory address)。这个属性是一个无符号整数,并且这个整数必须是2的N次方(1、2、4、8、……、1024、……)。当我们说,一个数据类型的内存对齐为8时,意思就是指这个数据类型所定义...转载 2019-02-01 11:08:52 · 2881 阅读 · 0 评论 -
big O
Know Thy Complexities!Hi there! This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science. When preparing for technical interviews in the past, I foun...转载 2019-03-08 14:33:51 · 342 阅读 · 0 评论 -
C++ 11 创建和使用 unique_ptr
C++ 11 创建和使用 unique_ptrunique_ptr不共享它的指针。它无法复制到其他unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一unique_ptr,并且原始unique_ptr不再拥有此资源。我们建议你将对象限制为由一个所有者所有,因为多个所有权会使...转载 2019-03-09 09:50:46 · 209 阅读 · 0 评论 -
C++11 mutex
C++11中新增了<mutex>,它是C++标准程序库中的一个头文件,定义了C++11标准中的一些互斥访问的类与方法等。其中std::mutex就是lock、unlock。std::lock_guard与std::mutex配合使用,把锁放到lock_guard中时,mutex自动上锁,lock_guard析构时,同时把mutex解锁。mutex又称互斥量。C++11标准库定义了4...翻译 2019-03-09 16:20:41 · 429 阅读 · 0 评论 -
unique_lock
std::unique_lock为锁管理模板类,是对通用mutex的封装。std::unique_lock对象以独占所有权的方式(unique owership)管理mutex对象的上锁和解锁操作,即在unique_lock对象的声明周期内,它所管理的锁对象会一直保持上锁状态;而unique_lock的生命周期结束之后,它所管理的锁对象会被解锁。unique_lock具有lock_guard的所有...翻译 2019-03-09 16:27:20 · 1529 阅读 · 0 评论 -
C++私有成员变量,类对象作用域,访问同类型实例对象的私有成员变量
私有成员变量的概念,在脑海中的现象是,以private关键字声明,是类的实现部分,不对外公开,不能在对象外部访问对象的私有成员变量.然而,在实现拷贝构造函数和赋值符函数时,在函数里利用对象直接访问了私有成员变量,因而,产生了困惑.下面以具体实例进行说明:疑惑:为什么第26行和第32行代码可以编译通过,而第39行和第40行代码会产生编译错误? 1 class CTest { 2 pu...转载 2018-12-29 11:06:18 · 705 阅读 · 0 评论