算法: 三只水桶等分水问题

有一个容积为8升的水桶里装满了水,另外还有一个容积为3升的空桶和一个容积为5升的空桶,如何利用这两个空桶等分8升水?附加条件是三个水桶都没有体积刻度,也不能使用其它辅助容器。

这是一道经典题目,一般人都可以在一分钟内给出答案,不过,很多人可能没有注意到这道题的答案不是唯一的。先来看看最常见的一个答案,也是目前已知最快的操作步骤,共需要7次倒水动作:

阅读全文

C++ STL 容器简介

C++ STL 简介 里已经介绍了C++的标准模版库, 以下简介下各种容器的特点.

(一)vector容器

vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,我们再也不必因为害怕空间不足而一开始要求一个大块的array。

阅读全文

C++ STL 简介



### 一、STL简介

STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。

STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。

阅读全文

纠结编译原理的非确定有穷自动机确定化算法

这几天都在考虑怎么用程序实现编译原理的非确定有穷自动机确定化算法, 主要麻烦就麻烦在数据结构上, 如何处理存储输入的数据, 又如何处理这些数据.

感觉整个过程就是在不断得改用C++标准库中的各种容器…..真是复习容器的好办法啊!

目前算法还是有问题..不能求得正确的子集? 还没找到问题所在, 开始用map里放set来解决了…- -…

代码改来改去, 真纠结啊…