Justme0的专栏

绘画美 建筑美 编程美 (个人主页:justme0.com)

排序:
默认
按更新时间
按访问量

函数式编程与 C++

这个学期学了一门函数式语言 Coq,是法国人发明的,它与 ML 很像,其实 Coq 的发明主要是受了 ML 的影响。Coq 的语法我就不在这叙述了,有兴趣的朋友可以看这本书 Software Foundations,也就是我们上课用的教材。下面直接看些例子吧。1. map它的功能与 C++ 中的s...

2015-04-22 12:34:32

阅读数:2669

评论数:1

C/C++ 中生成特定范围内的随机数

大家在写 C/C++ 程序时,难免会遇到要求获取某个范围内的随机数,我查阅了一些资料后,总结如下。本文分两部分,先介绍 C 语言中与随机数相关的两个函数 srand 和 rand,后介绍 C++ 中的 random 库,每一部分最后会给出生成特定范围内的随机数模板供参考。 1 C 语言中...

2014-11-27 16:04:02

阅读数:18823

评论数:1

C++ 中的 Lambda 表达式

前些天买了本《程序设计语言理论》,看了简介,Lambda 演算贯穿整个理论,尤其在函数式语言中具有重要作用。C++11 中也加入了 Lambda 表达式,下面做个总结。1、一个简单的 Lambda 表达式如下: [] {} 这就定义了一个对象,这个对象匿名,记住,Lambda 表达式是对象,不是类...

2014-05-08 16:52:36

阅读数:2097

评论数:0

【算法】第 n 小数 nth_element

STL 中取第 n 小数的算法 nth_element 的函数原型如下 template<class RandomAccessIterator> void nth_element(RandomAccessIterator first, RandomAccessIterator nth,...

2014-04-30 16:48:02

阅读数:2713

评论数:0

【算法】中位数 median

median 是 STL 内部的算法,用于求三个数的中位数,它将用于 std::sort, std::nth_element 的实现中,快速排序和求第 k 小数算法都用到了划分,选取 pivot 时为“三者取中”,即 *first, *(first + (last - first) / 2), *...

2014-04-26 22:23:39

阅读数:4219

评论数:0

【算法】划分 partition

STL 中的划分算法 partition 的函数原型如下 template ForwardIterator partition(ForwardIterator first, ForwardIterator last, Predicate pred);四点说明: 1、作用:将 [first, la...

2014-04-25 21:44:52

阅读数:5652

评论数:0

【算法】插入排序 insertion_sort

准备写个《STL 源码剖析》的读书笔记,开个专栏,名为《STL 的实现》,将源码整理一遍。很喜欢侯捷先生写在封底的八个字:天下大事,必作于细!他在书中写到: 我开玩笑地对朋友说,这本书出版,给大学课程中的「数据结构」和「算法」两门授课老师出了个难题。几乎所有可能的作业题目(复杂度证明题除外),本书...

2014-04-22 17:20:19

阅读数:2677

评论数:1

用有限自动机实现正则表达式的匹配

问题:在主串中查找是否存在正则表达式为 abc*d?e 的匹配,下面用有限自动机的方法查找,该正则表达式的最简 DFA 如下 状态转换表如下图所示 程序中用二维数组定义如下 #define STATES_NUMBER 5 #define LETTER_NUMBER 5 // 表示 abc*d...

2014-03-08 18:33:12

阅读数:6613

评论数:0

C 语言中模拟“泛型”

一般在写 C 程序时用 typedef 将容器中元素的类型抽象,无法在同一个程序中用到两种类型,而本文试图在一个程序中用到两种不同类型的容器,比如实现类似于 C++ 中的 vector 和 vector。核心技术是将元素类型定义为 void *,管它什么类型,都用 void * 类型的指针指向真正...

2014-02-07 22:44:15

阅读数:3176

评论数:0

求二叉树的带权路径长度(深搜或广搜)

考研昨天结束了,专业课我考得不好,是408,算法题13分。今年是求二叉树的带权路径长度,我就写了算法思想,代码空白,因为时间来不及了,慌了,是心态的问题吧,做到最后有种天要塌下来的感觉,回来后很沮丧,因为我觉得自己是可以写出程序的,不服啊!  下面说说这道题目。树的带权路径长度(Weighte...

2014-01-06 17:28:56

阅读数:3408

评论数:0

上机实现操作系统课程中的 PV 操作

各位上过《操作系统》的同学都知道进程同步这个知识点,汤小丹那本“考研指定教材”上面描述 PV 操作是用 Pascal 语言的,看着真心难受,各种题目也是要求我们纸上写程序,本人真心反感,写了都不知道对不对。下面这个程序是在 Windows 下用 C 语言写的,选的例子是经典的“生产者消费者问题”,...

2013-11-06 17:27:21

阅读数:1690

评论数:0

用二级指针操作不带头结点的单链表

在不带头结点的单链表中删除特定元素,一种很麻烦的情况是首结点即要删的结点,所以往往标识一个链表的 head 就会改变,而在删除函数中要改变客户端的 head,就必须传入 head 的地址,否则客户端的 head 永远不会改变,也就是说,若形参为 Node * 类型,修改的只是 head 的副本,这...

2013-10-06 00:56:32

阅读数:2932

评论数:8

用 C++ 标准模板库(STL)的 vector 实现二叉搜索树(BST)

本文由 Justme0 翻译自 Code Project 转载请参见文章末尾处的要求。 介绍 众所周知,要建一棵树,我们需要关注它的内存分配与释放。为了避开这个问题,我打算用C++ STL(vector和deque)来建一棵小型的BST。很明显,这篇文章是出于这个想法的。   背景 BST是...

2013-09-05 17:31:07

阅读数:4696

评论数:0

C 语言中实现数据与方法的封装

在 C 语言中可以用结构体代替类,用函数指针代替成员方法,实现数据成员与成员方法的封装,在客户端程序中写出的程序与 C++ 类似,唯一的不同是 C 语言中调用函数指针成员时必须将本对象的地址传给函数,因为 C 语言中各函数的地位是相同的。        本文以模仿 STL 中的 vector 类写...

2013-08-19 00:25:58

阅读数:3076

评论数:0

第一次面试

下午课刚上完,我收到了HR的通知,得知没有通过面试,这是一家在合肥的软件公司。挺不爽的,我觉得主要是因为经验少。还是谈谈面试官问我的两个技术问题吧,我应聘的是C++软件开发工程师。 1、STL中的map是线程安全的吗? 我的回答:标准中没有规定,但是基本上STL都实现了,是线程安全的。 其实是...

2013-05-24 17:46:48

阅读数:2421

评论数:7

USACO 1.2.2 Transformations(模拟)

分析        这是我第一次在ACM的题目中用OO的思想写的程序,看到标程,竟不谋而合,结构是类似的。对正方形这个类分析,将会使问题变得简单,我觉得OO的分析和设计挺关键的,其实我一开始也没设计好,原先准备把7个bool函数当成类的成员方法,其实这个设计是不好的,有点过了。其实应该是把旋转90...

2013-03-30 13:14:08

阅读数:1410

评论数:1

POJ 1151 Atlantis(离散化+扫描线)

题目大意: 求N个矩形的并的总面积。http://poj.org/problem?id=1151 参考了黑书上讲离散化的那两页,想到了上学期学的计算机图形学里的多边形填充算法。 src: /************************************************...

2013-03-28 11:59:05

阅读数:1345

评论数:0

USACO 1.1.4 Broken Necklace(模拟)

做这题做了一个下午,都快崩溃了。说下要点: 1、要注意'w'这种特殊情况,到某位置时,注意左边、右边是'w'的情况。 2、得把整个项链看出循环队列,所以指针移动时注意mod。 3、我用的还是暴力法,O(n^2),看解题报告有O(n)的算法,用的是DP,还有待研究。 源程序 #...

2013-03-24 00:18:36

阅读数:1483

评论数:0

完美二叉树(perfect)与正则二叉树(strict)的概念

“满二叉树(full)”的定义在国内和国外完全不同,国内指“完美二叉树(perfect)”,国外指“正则二叉树(strict)”,所以我建议国内外都取消“满二叉树(full)”这个叫法,这样就没有不必要的麻烦了。 总结如下: 参考资料: http://www.stackpop...

2013-02-25 10:36:28

阅读数:5101

评论数:0

读《STL源码剖析》有感

一个月之前的今天是我的生日,一位关系不错的同学送了我本《STL源码剖析》,还有位送了我本《C和指针》,我就看起来了,这些天都在考试,就经常晚上11点半过后拿个手电筒看,我特别认可一句话:“兴趣是最好的老师。”          《C和指针》里面的内容很细,我就先看了《STL源码剖析》。第一次正式...

2013-01-21 19:16:51

阅读数:1731

评论数:0

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