2012.11.9

1.图的广度优先搜素

这两天在做全地图寻路,用到了图的最短路径算法,因为无权值,所以就是最简单的广度优先搜索,说是最简单,但对于我也不是不用动脑子就能写,我自己先根据记忆写了一个,然后再把《算法导论》找来,看了一下里面写的,结果果然我把比较妙的一部分没写出来。广度优先搜索形象得说,就是一个点被点亮,然后这个点周围一圈点被点亮,然后周围一圈点的每一个点的周围一圈点被点亮,如此下去,要解决的一个问题就是这里有两个层次,第一个层次是周围点需要被点亮的点,第二个层次是前一个层次的点周围的被点亮的点,每一轮动作结束后,第二个层次变为第一个层次,这两个层次都需要被记录,我一开始是用两个vector记录它们,每轮动作结束后,将第一层的vector清空,然后把第二层的vector复制到第一层,然后清空第二层。而《算法导论》里面是用一个队列实现的,第一层在队列的前部,第二层在队列的后部,第一层处理完毕后,就消失了,第二层就自动变为第一层了,这个比较妙。


2.C++中的从属类型

从属于模板类型参数的类型被称为从属类型,前面要加typename,例如:

template<typename C>
bool lastGreaterThanFirst(const C& coll)
{
    typename C::const_iterator begin(coll.begin());
    typename C::const_iterator end(coll.end());
    return *--end > *begin;
}

3.关联容器元素依据键值由小到大输出

用语句copy (coll.begin(). coll.end(), ostream_iterator<int>(cout, " "));顺序输出容器中的元素,set、multiset、map、multimap是按照键值由小到大输出的,但hash_map和hash_set无法做到这一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值