上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: const其他用法已经比较清楚了,但const函数的概念之前还有点模糊,先记录一下。const int* fun();用于修饰函数返回值,一般用于修饰函数返回指针,防止返回的指针内容被修改。class B{public: int a; void fun() const;};表示fun()是一个const成员函数,它不能修改任何数据成员,也不能调用任何非const成员函数。当在fun内尝试修改a时编译会报错。于是当出现const返回值加const成员函数的时候,要搞清楚了const int* fun() const ;表示它是一个const成员函数,并且返回一个const指针。 阅读全文
posted @ 2013-09-12 16:22 iyjhabc 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 看了一道笔试题,说有100W个数据,范围在0~65535之间,要求用最少的空间和最快的速度进行排序。刚开始的思路是,65535就是2^16,那首先要把数据类型定义为short。其次,要用最少的空间,那最好还是不用递归,那不用快排。不递归,速度又快,那肯定是堆排序了。O(n)的空间+O(nlogn)的时间。后来看了网上的人对于这题的评点,原来统计排序才是这一条件下的最优解。统计排序,又叫桶排序。它的原理非常简单。在知道数据大小范围的条件下,定义一个等于数据大小范围的数组。数组初始化为0,然后直接用数据作为数组下标统计数据个数,最后把统计数据从头到尾输出(升序),或者从尾到头输出(降序)即可。时间 阅读全文
posted @ 2013-09-12 10:15 iyjhabc 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 如果程序中经常要对矩阵进行与或非等运算,可以把整型数组的矩阵转化成char型的bitmap,通过直接的位运算进行这些与或非操作会大大地提高效率。class bitmap{ char *buf;public: int buf_len;//buf的长度 int bit_len;//bitmap的位数 bitmap(int *group,int group_len){ bit_len=group_len; buf_len=group_len/8+1; buf=new char[buf_len]; memset(buf,0... 阅读全文
posted @ 2013-09-11 11:08 iyjhabc 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 定义一个类对象时,首先根据初始化列表初始化类的成员(就算没有显式定义初始化列表,编译器也会默认地初始化一次),然后运行构造函数。因此,类成员的构造函数必定先于类的构造函数运行。class A{public: A() { puts("In A"); } ~A() { puts("Out A"); }};class B{public: B() { puts("In B"); } ~B() { puts("Out B"); }};class D{public: D() ... 阅读全文
posted @ 2013-09-08 22:17 iyjhabc 阅读(1457) 评论(1) 推荐(0) 编辑
摘要: 友元就是让本该不能访问类的私有成员、保护成员的函数或者类,通过声明它为友元的方式,使得他们能够访问这些私有、保护成员。使用友元其实就是破坏封装,应尽量避免使用。友元有多重形式,经常会造成混乱,其实总结来说,就是三种程度的破坏封装:1、声明一个普通函数作为类的友元(最高程度破坏封装)class INTEGER{private: int num;public: friend void Print(const INTEGER& obj);//声明友元函数 INTEGER(){ num=999; }};void Print(const INTEGER& obj)/... 阅读全文
posted @ 2013-09-06 10:34 iyjhabc 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/zzwlovegfj/archive/2012/06/23/2559596.html1.什么是视图?视图是由查询结果形成的一张虚拟表。2.什么时候要用到视图?如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询3.视图的创建语法:createview视图名asselect 语句;4.使用视图有什么好处呢?①简化查询语句 比如:有一张商品表,我们经常要查每个栏目下商品的平均价格 select cat_id,avg(shop_price) from goods gropy by cat_id; 这时候我们就可以创建一张视图: c 阅读全文
posted @ 2013-09-05 11:04 iyjhabc 阅读(265) 评论(0) 推荐(0) 编辑
摘要: mysql存储过程详解 转自:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html1.存储过程简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中 阅读全文
posted @ 2013-09-05 10:47 iyjhabc 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 在只有虚函数,或者只有虚继承的情况下,各个编译器中对C++的内存模型的实现是一样的。但同时存在虚函数和虚继承时,GCC与VC就会有差别。class Base//4{ int a;};class Base1 :public Base//8{ int a;};class Base2 : public Base//8{ int a;};class Base3//4{ virtual void funa(){}};//两个虚继承分别使用两个指针指向自己的虚基类,然后两个基类有2个int//应为使用了共同的虚基类,base的int只有一个,因此2*4+4+4+4=20//有多个虚... 阅读全文
posted @ 2013-08-29 10:51 iyjhabc 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 安装sudo apt-get install mysql-server//单独装了mysql以后已经可以使用了,但还不能用c连接,编译的时候会提示找不到mysql.h,还要安装libmysqlclient-devapt-get install libmysqlclient-dev准备:初始化库函数,初始化mysqlchar* server_groups[]={"embedded","server","this_program_server",(char*)NULL}; MYSQL *pmysql=new MYSQL; if(mysql 阅读全文
posted @ 2013-08-28 17:06 iyjhabc 阅读(1630) 评论(0) 推荐(0) 编辑
摘要: 我觉得XML可以理解成为一棵多叉树。一个根节点下,可以有多个子节点,子节点又可以看做是一个根节点继续添加子节点。每个节点上面可以有标签(可以理解为节点的一些属性)。当节点为叶子节点的时候,一般存放一串字符串,可以理解为节点的内容。加载dom库from xml.dom import minidom建立节点#建立整个文本doc=minidom.Document()#建立普通节点acadamic=doc.createElement("acadamic")#节点名称为acadamic#简历文本节点,也是是最底层节点#比如 Automation# "Automation&q 阅读全文
posted @ 2013-08-27 17:01 iyjhabc 阅读(1339) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页