自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 linux线程同步与互斥-读写锁

读写锁是一种特殊的自旋锁,对临界资源的访问者分成读者和写者,读者只对临界资源进行读访问,所以可以有好多读者一起读,但此时不能写入, 写者则需要对共享资源进行写操作。相比于其他的所他可以实现读多写少的模型,读者间可以一起读,没有关系,只要维护读者与写者之间互斥即可。 他有三种状态 (1)读加锁 (2)写加锁 (3)不加锁 相关的函数 int pthread_rwlock_init(pt

2017-06-19 15:27:21 367 1

原创 红黑树的简析

红黑树的内涵性质以及模拟实现

2017-06-07 21:29:24 263

原创 堆排序和TopK问题

堆是一种很有趣的数据结构,有最大堆和最小堆两种形式,在上一篇文章里已经讲到了最大最小堆的建立; 这里用一下堆的方法解决问题。      1.首先是在一大堆数字中找到K个最大或最小的数字(topK问题) topK问题是生活中很常见的问题;比如找到N个在某个科目成绩最好的同学,或者在很多游戏中都会有很多数据分析结果,年度评价之列的都是什么游戏时间最长啦,与你开黑时间最多的K个小伙伴啦,都会用到。

2017-05-23 12:28:12 3048

原创 最大堆最小堆的建立

堆是一种数据结构,它是一颗完全二叉树,最大堆和最小堆是二叉堆的两种形式。 最大堆:每个父亲结点的键值都大于孩子结点 最小堆:每个父亲结点的键值都小于孩子结点 下面看一下我的实现方式↓ #pragma once #include using namespace std; template struct Great { bool operator()(con

2017-05-22 11:41:10 944

原创 迷宫求解

求解迷宫是一件挺简单的事情,对于计算机而已,则需要按算法遍历直到找到解,有路口、有死胡同,所以这个过程和栈的进出过程一样。 若是需要最优解,则需要遍历所有路线找到路径最短的解。 下面是一些对于迷宫求解的算法,希望有用 1.建立一个mazemap。 #include #include #include #include #pragma warning(disable

2017-05-06 00:00:55 310

原创 【STL】vector的模拟实现

STL中的vector也是一个常用的容器,他是一个顺序表,很多用法和接口都和list的一样。 下面来看一下vector的模拟实现 #include #include using namespace std; template class Vector { public: typedef T* Iterator; typedef const T* ConstIt

2017-05-05 14:34:52 303

原创 STL中list各个接口的使用

list是STL中的一个重要的容器,它是一个双向的循环的带头结点的链表,可以高效的进行插入删除元素,这里来看一下他的接口们。

2017-05-03 16:15:38 376

原创 迭代器与List

List是STL库(标准模板库)中的一个容器。它的实质上就是一个双向链表,而且要注意的是,这个双向链表是有头的;他有一个空的头结点,插入删除时不用判断表中有无数据,双向循环可以轻易的_head->prev轻松地找到最后一个节点end。      它使用内置的迭代器来遍历和管理这个容器,迭代器就像指针一样管理着这个空间,重载实现了与指针以一样的++、*、= 、!=等操作符。 下面让我们简单的模拟实

2017-05-02 18:22:05 270

原创 SharePtr的简单实现

智能指针就是一个智能的指针:有以下两个特点 管理指针指向对象的释放问题; 又能像指针一样使用。 所以可以用RAII(资源获取就是初始化)的方式设计一个指针的对象用它的析构函数来管理资源、避免内存泄露。shared_ptr是一个智能指针,比起auto_ptr 、unique它更像一个智能指针。下面看一下SharePtr的简单实现↓ template<class T,class Del> class S

2017-04-14 13:27:13 1878

原创 vim的简单配置

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器。 想要用的得心应手一些自己喜欢的配置就尤为重要。想要配置vim就要先找到vimrc对其进行配置 在每个用户的主工作目录下都有一个.vimrc的隐藏文件(ls-a可以看到),在其中输入以下的一些指令即可 全局的vimrc在 /etc/vim/vimrc这个目录下对他进行配置需要root权限下面进行本人用户的一些简单的配置显示高亮 :sy

2017-04-09 13:27:16 196

原创 linux find命令详解

find命令功能强大,所以他的选项众多,他消耗资源多,所以他的工作效率并不是很高,但是要经常使用,所以我们来了解一下find的一些用法。1. find命令格式 find的一般格式为:find pathname -options [-print -exec -ok …]。2. find命令的参数; pathname: find命令所查找的目录路径。 -print: find命令将匹配的文件输出到

2017-04-04 14:38:51 787

原创 linux文件的三个时间及目录权限的解释

一、三个时间的查看: 用stat 获取文件的三个时间; 二、三个时间的意义及改变条件 access time :表示最后一次访问(仅是访问)文件的时间。modify time:表示最后一次修改文件。 的时间。 change time:表示最后一次对文件属性改变的时间,包括权限,大小,属性等等。总结一下:访问只会改变access time; 更改内容只会修改modify time; 修改文件权限只

2017-03-22 13:24:51 359

原创 关于求一个十进制的数在二进制形式中1的个数

今天遇到了一个有趣的问题,求一个数的二进制形式中的1的个数,有以下的程序: #include < stdio.h> int main () { int n = 0,count = 0; scanf("%d",&n); for(;n>0;n /= 2) { if( n%2 == 1) count++; } pri

2016-10-29 23:47:59 499

原创 博客第一天

大家好,我是目前是陕科大的一名大二学生,我的名字叫邵书源,来自杭州,没什么特别的爱好,平时喜欢打打游戏,但是玩了一个又一个游戏发现并没有一个能适合我的让我一直保持痴迷的游戏,而越来越发现会开发游戏才是最有趣的,能让别人玩你的游戏一定比玩别人的游戏带来的成就感强烈。对于脚本也有很大的兴趣( *︾▽︾) ,用过脚本,却并不知道它是怎么工作的,是怎么构成的。于是就向这个道路越走越远,高考的专业选择5个志

2016-10-28 16:31:49 193

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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