STL map的初步学习

(零)map的内部是红黑树,所以是有序的
(一)Map的定义:
Map student;
(二)Map插入数据
(1)用insert函数
<1>student.insert(pair(1, “student_one”));
<2>Insert_Pair = student.insert(map::value_type (1, “student_one”));
(2)用数组方式
student[1] = “student_one”;
两种方式的区别:
当map中已经有该关键字时,第一种将不插入,而数组方式会覆盖原来的值
(三)如何知道是否插入成功?
Pair
::iterator, bool> Insert_Pair;
Insert_Pair = student.insert(map::value_type (1, “student_one”));
如果插入成功,则Insert_Pair.second为true
(四)如何遍历map:

关于汉若塔问题

这是一道非常经典的题,我想只要是将C语言的书一定都会写到递归,而谈到递归,汉若塔问题就不可能不出现。
记得第一次学C语言时看到它的解法,感觉很难,后来渐渐才理解,但总会突然又忘记,总之看着很别扭。于是这回再来看看这道经典的题。
首先是建模,n个盘子从1到n编号,最下面是n,最上面是1,初始都在A柱子上,目的是通过B柱子全部移到C柱子上。当然有一定限制,游戏规则大家应当都知道,不在累述。
下面是程序:

一道有趣的题,关于宏

今天看到一道题目,感觉写不出程序来,于是看了答案,看到答案后先是不解,感觉答案不正确,结果发现是自己把变量的&操作跟寄存器的and操作混淆了,做了个小实验才弄清楚。c语言里面变量&操作不改变原变量,只改变赋值号(=)左边的值。。。囧~
之后理解了答案,然后就彻底震惊了。。。
原来程序竟然可以这么写!!这道题目改变了我对宏的看法。。
题目是这样的:
假设中国象棋棋盘上只有一个将和一个帅,显然,两者不能出现在同一纵列上。题目要求求出将和帅的所有可能位置组合。
只能使用一个变量。是的,只能用一个变量,对我来说有点难。想了一会没感觉。就看了答案,答案用1到9表示棋子可以移动的九个格子。如下

c++ string类详解(转)

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作 为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。
好了,进入正题………
首先,为了在我们的程序中使用string类型,我们必须包含头文件 。如下:
#include //注意这里不是string.h string.h是C字符串头文件

写个stl程序

明天就要acm课考试了,可是一学期几乎没去上过课(感觉有点对不住lcy老师啊。、、),肿么办。。没办法,只能临时抱抱佛脚,于是拿出了尘封已久的《算法竞赛入门经典》,话说当初刚接触acm的时候真心挺佩服刘汝佳的,大神啊,大二是就是世界第四了。可一年多过去后发现自己对这个没多少兴趣了。。