10 2012 档案

Effective C++总结
摘要:条款1:View C++ as a federation of languages。视C++为一个语言联邦。分为四个部分:C、Object-Oriented C++(Class)、Template C++、STL条款2:Prefer consts, enums, inlines to #defines。尽量以const, enum, inline替代#define。记住:1.对于单纯常量,最好以const对象或enum替换#define 2.对于形似函数的宏(macros),最好改用inline函数替换#defineC语言用#define可以做到两点,第一,定义常量,如#define PI 3 阅读全文

posted @ 2012-10-30 17:04 linzuxin 阅读(187) 评论(0) 推荐(0)

Python对象模型
摘要:Python对象模型对一门具体的编程语言来说,在应用设计模式时影响最大的莫过于它的对象模型了,这是因为大部分设计模式都源自于C++和Java这类面向对象编程语言。要想在Python中复用这些设计模式,首先需要对Python的对象模型有一个比较清晰的认识。4.1 类同其它面向对象编程语言一样,Python中的类也是一种用户自定义的数据类型,其基本的语法格式是: class <name>(superclass, ...): # 定义类 data = value # 共享的类变量 def method(self, ...... 阅读全文

posted @ 2012-10-29 09:56 linzuxin 阅读(368) 评论(0) 推荐(0)

等概率产生0和1(延伸)
摘要:1.有一个随机数发生器,能以概率p生成0,以概率1-p生成1,问如何做一个随机数发生器使得生成0和1的概率相等。2.用上面那个生成0和1的概率相等的随机数发生器,怎样做一个随机数发生器使得它生成的数在1...N之间均匀分布。第一题比较简单,可以用原发生器周期性地产生2个数,直到生成01或者10。由于生成01和10的概率均为p(1-p),故预先任意指定01为0(或1),10为1(或0)即可。即可等概率的产生0和1,但然,要考虑其他组合的不可用性,获取题目本身就隐含了这个bug或是缺陷吧。int Rand() { int i1 = rand(); int i2 = rand(); if(i1... 阅读全文

posted @ 2012-10-28 21:29 linzuxin 阅读(398) 评论(0) 推荐(0)

螺旋数组
摘要:题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1234567891011 12131415 16则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6,7, 11, 10。总结规律,找出通项公式这个太复杂了,还是老老实实输出方法:依次:按左-->右,上-->下,右-->左,下-->上的方向交替访问,如果遇到已经访问过的元素,那么就改变访问的方向。#include<iostream> using namespace std; int main() { const int 阅读全文

posted @ 2012-10-26 22:24 linzuxin 阅读(206) 评论(0) 推荐(0)

二分查找及其变形
摘要:二分查找常用来查找指定有序集合中元素的位置,思路和代码都比较简单,所以大家都很熟练。二分查找貌似很多公司在面试或笔试的时候都会多少涉及到,经常会让你在纸上直接写代码,所以平常只知道原理而从来不自己写的人,可能不会太快写出来,或是代码有点小漏洞,所以经常敲敲常见的数据结构和代码还是很必要的。经典二分查找的代码:int Find(int arr[], int key,int length) { assert(arr!=NULL&&length>0); int low=0,high=length-1,mid; while(low<=high) { mi... 阅读全文

posted @ 2012-10-26 19:59 linzuxin 阅读(222) 评论(0) 推荐(0)

socket的read和recv函数的区别
摘要:1、recv和send recv和send函数提供了和read和write差不多的功能.但是他们提供了第四个参数来控制读写操作。int recv(int sockfd,void *buf,int len,int flags)int send(int sockfd,void *buf,int len,int flags)前面的三个参数和read,write相同,第四个参数能够是0或是以下的组合_______________________________________________________________MSG_DONTROUTE:不查找路由表MSG_OOB:接受或发送带外数据MS. 阅读全文

posted @ 2012-10-26 19:31 linzuxin 阅读(326) 评论(0) 推荐(0)

linux的tcp服务端、客户端例子
摘要:TCP编程的服务器端一般步骤是:1、创建一个socket,用函数socket();2、设置socket属性,用函数setsockopt(); * 可选3、绑定IP地址、端口等信息到socket上,用函数bind();4、开启监听,用函数listen();5、接收客户端上来的连接,用函数accept();6、收发数据,用函数send()和recv(),或者read()和write();7、关闭网络连接;8、关闭监听;TCP编程的客户端一般步骤是:1、创建一个socket,用函数socket();2、设置socket属性,用函数setsockopt();* 可选3、绑定IP地址、端口等信息到soc 阅读全文

posted @ 2012-10-26 19:18 linzuxin 阅读(724) 评论(0) 推荐(0)

Mysql数据常用命令
摘要:1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql>SHOW DATABASES;2:2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA;3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)4:查看现在的数据库中存在什么表 mysql> SHOW TABLES;5:创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));6:显示表的结 阅读全文

posted @ 2012-10-24 09:26 linzuxin 阅读(195) 评论(0) 推荐(0)

自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
摘要:字节拷贝函数:void * memcpy1(void *dest, const void *src, size_t n){ assert(dest!=NULL&&src!=NULL); //有效性检测 if(dest == src) return dest; else if(dest < src) { const char *c_src = static_cast<const char *>(src); char *c_dest = static_cast<char *>(dest); while (n--) *... 阅读全文

posted @ 2012-10-23 18:10 linzuxin 阅读(271) 评论(0) 推荐(1)

C++中的空类,默认产生哪些类成员函数?
摘要:class Empty { public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& ); // 赋值运算符 Empty* operator&(); // 取址运算符 const Empty* operator&() const; // 取... 阅读全文

posted @ 2012-10-23 17:44 linzuxin 阅读(172) 评论(0) 推荐(0)

定义一个宏获取结构体中变量相对结构体开始的偏移量
摘要:#include <iostream> using namespace std; struct test{ int a; char b; int c; char d; }; #define find(type, var) (unsigned int)(&(((type *)(0))->var)) int main() { int a = find(test, a); //0 int b = find(test, b); //4 int c = find(test, c); //8 int d = find(test, d); //12 cout << a 阅读全文

posted @ 2012-10-22 14:26 linzuxin 阅读(218) 评论(0) 推荐(0)

继承和组合的区别
摘要:首先它们都是实现系统功能重用,代码复用的最常用的有效的设计技巧,都是在设计模式中的基础结构。相信大家已了解的,类继承允许我们根据自己的实现来覆盖重写父类的实现细节,父类的实现对于子类是可见的,所以我们一般称之为白盒复用。对象持有(其实就是组合)要求建立一个号的接口,但是整体类和部分类之间不会去关心各自的实现细节,即它们之间的实现细节是不可见的,故成为黑盒复用。 继承是在编译时刻静态定义的,即是静态复用,在编译后子类和父类的关系就已经确定了。而组合这是运用于复杂的设计,它们之间的关系是在运行时候才确定的,即在对对象没有创建运行前,整体类是不会知道自己将持有特定接口下的那个实现类。在扩展方面组合比 阅读全文

posted @ 2012-10-21 22:02 linzuxin 阅读(394) 评论(0) 推荐(0)

RAID详解[RAID0/RAID1/RAID10/RAID5]
摘要:一.RAID定义RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。二、 RAID的几种工作模式(仅讨论 RAI 阅读全文

posted @ 2012-10-18 15:39 linzuxin 阅读(250) 评论(0) 推荐(0)

百度2013校园招聘笔试题(含自己整理的答案)
摘要:一:简答题(30)1:数据库以及线程发生死锁的原理及必要条件,如何避免死锁答:产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。产生死锁的四个必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。避免死锁:死锁的预防是通过破坏产生条件来阻止死锁的产生,但这种方法破坏了系统的并行性和并发性。死锁产生的前三个条件是死锁产生的必要条件, 阅读全文

posted @ 2012-10-07 17:35 linzuxin 阅读(162) 评论(0) 推荐(0)

导航