//BFS#include #include using namespace std;bool used[8][8];int move[8][2]={1,2, -1,2, -2,1, -2,-1, -1,-2, 1,-2, 2,-1, 2,1};struct position{ int i,j...
分类:
其他好文 时间:
2014-08-09 11:21:17
阅读次数:
245
好像是哈希吧 直接枚举绝对会超时要分为两组 先把ab记录然后求出对应的cd这题其实还有很多不解的地方比如结尾的 *16还有神奇的stl#include#include#include#include#include#include#include#define mem(a,b) memset(a,b...
分类:
其他好文 时间:
2014-08-09 02:28:46
阅读次数:
244
C++为我们提供了安全的内存空间申请方式与释放方式,但是new与delete表达式却是把空间的分配回收与对象的构建销毁紧紧的关联在一起。实际上,作为与C语言兼容的语言,C++也为我们提供了更加底层的内存操作方式的。
谈C++就离不开STL,考虑一下vector
template class T>
void Vector::push_back(const T& t)
{
// are w...
分类:
编程语言 时间:
2014-08-09 00:14:07
阅读次数:
409
看下面两段代码,
typedef pairVirObjTYPE, std::listCheckID>*> VirObj_CheckID_pair;class LangChecker{public: LangChecker(); //completed in an auto-generated file ../parser/LangChecker_init.cpp which init...
分类:
其他好文 时间:
2014-08-08 16:06:26
阅读次数:
247
图有四种存储结构:数组,邻接表,十字链表,邻接多重表。下面以数组为存储结构来实现图的深度优先搜索遍历和广度优先搜索遍历。其中广度优先搜索遍历中有用到STL中的queue,注意头文件的包含。具体代码如下:
//图的数组(邻接矩阵)存储表示和深度优先遍历
const int MAX_VERTEX_NUM=20; //最大顶点数
typedef enum {DG,DN,UDG,UDN} Graph...
分类:
其他好文 时间:
2014-08-08 12:39:35
阅读次数:
224
vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vecto...
分类:
其他好文 时间:
2014-08-08 09:32:55
阅读次数:
250
1. 按值传递
什么是按值传递?
当一个函数通过值的方式获取它的参数时,就包含有一个拷贝的动作。编译器知道如何去进行拷贝。如果参数是自定义类型,则我们还需要提供拷贝构造函数,或者赋值运算符来进行深拷贝。然而,拷贝是需要代价的。在我们使用STL容器时,就存在大量的拷贝代价。当按值传递参数时,会生产临时对象,浪费宝贵的CPU以及内存资源。
需要找到一个减少不必要拷贝的方法。移动语义就...
分类:
移动开发 时间:
2014-08-08 02:04:05
阅读次数:
417
STL中的set和map是有序容器,使用时如果希望根据自己的需要来设定排序器,通常有一下两种方式。
1.如果容器中直接存储对象的话,那么我们可以在对象类中重载
2.如果存储的不是直接对象的话比如对象的指针(通常为智能指针),这个时候我们就要定义自己的比较器。而比较器的写法一般有两种。
->1.类内重载函数调用运算符的方法。
->2.以函数的方式提供比较器。
对于第一种方法是非...
分类:
其他好文 时间:
2014-08-07 23:14:55
阅读次数:
277
1.关于set
C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让...
分类:
其他好文 时间:
2014-08-07 19:02:41
阅读次数:
320
首先来看看set集合容器:
set集合容器实现了红黑树的平衡二叉树数据结构,在插入元素时它会自动调整二叉树的排列,把该元素放到适当的位置,并且
保证左右子树平衡。平衡二叉检索树采用中序遍历算法。
对于set,vector,map等等,它们的前向迭代器定义是这样的(以set为例):
set::iterator it;
for(it=s.be...
分类:
其他好文 时间:
2014-08-07 19:01:10
阅读次数:
269