菜鸟笔记
提升您的技术认知

C++ 笔记 第27页

const 与 shared_ptr

const 与 shared_ptr 注意: 需要c++11的支持 const 与 shared_ptr 之间的组合不是很常见,最多的也只是在传递参数时: shared_ptr<int> func(const shared_pt...

赞(1)菜鸟菜鸟阅读(4602)

C++多线程——读写锁shared_lock/shared_mutex

主要参考APUE以及std::shared_mutex 1. 何为读写锁 相比互斥锁,读写锁允许更高的并行性,互斥量要么锁住状态要么不加锁,而且一次只有一个线程可以加锁。 读写锁可以有三种状态: 读模式加锁状态; 写模式加锁状态; 不加锁状...

赞(1)菜鸟菜鸟阅读(3290)

error: templates may not be ‘virtual’

 模板函数不能是虚函数,原因如下:   首先呢,模板函数并不是函数,他需要特定的类型去实例化成为函数。你定义一个函数模板,是不生成任何函数的,只有当你用代码去调用它时,才会根据你的类型去实例化成为特定的函数。 而virt...

赞(1)菜鸟菜鸟阅读(2702)

c++类模板的继承

根据上一篇博客中举的数组的例子,这篇博客就对其进行继承,再继承一个模板类出来。 下面程序中的searcharray模板就继承了之前的freearray模板类,然后在他的基础上实现对特定数组元素的查找操作: //此模板继承自freearray...

赞(1)菜鸟菜鸟阅读(3379)

c++ 类中模版成员函数

C++函数模版与类模版。 template <class T> void SwapFunction(T &first, T &second){ }//函数模版 template <class T>//...

赞(1)菜鸟菜鸟阅读(2085)

new/delete 详解

一、new/delete 简介 new 和 delete 是 C++ 用于管理 堆内存 的两个运算符,对应于 C 语言中的 malloc 和 free,但是 malloc 和 free 是函数,new 和 delete 是运算符。除此之外,...

赞(1)菜鸟菜鸟阅读(5521)

求二叉树的结点个数

求二叉树的结点个数 如下利用递归来实现 方法一 根据递归函数实现,如果树不为空,根节点为1 1 统计根节点左子树 2 统计根节点右子树 3 将左子树节点个数+右子树节点个数+根节点个数1=即为整颗树的节点个数 4 统计左右子树的节点个数也是...

赞(1)菜鸟菜鸟阅读(4199)

STL中list的使用

list的底层结构 list底层是一个带头节点的双向循环链表,任意位置插入和删除时间复杂度0(1) list迭代器 由于list底层是带头节点的双向循环链表,因此list的迭代器需要list的实现者自己提供 迭代器怎么实现呢? 迭代器的本质...

赞(1)菜鸟菜鸟阅读(3470)