Basic C++
文章平均质量分 70
quickSort
Programme my future
展开
-
C++中的动态绑定
C++中的动态绑定 动态绑定(dynamic binding):动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。 C++中,通过基类的引用或指针调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这一事实是动态绑定的关键。用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指原创 2013-04-03 21:19:27 · 3258 阅读 · 4 评论 -
C++内存管理
C++内存池初探原创文章,转载请注明出处:http://blog.csdn.net/fastsort/article/details/12356369///mymem.h 使用自己定义的内存管理需要包含这个头文件#ifndef __mymem_h__#define __mymem_h__template class CachedObj{public: v原创 2013-10-06 20:35:57 · 1698 阅读 · 1 评论 -
C++构造函数
关于构造函数《C++ Primer》(4th)中p369讲的不是很清楚,读起来很费劲。构造函数初始化成员的两种方法:1、使用构造函数的初始化列表进行初始化 格式:classname(参数列表):(初始化列表){ } 初始化列表格式: 成员名1(形参名1),成员名2(形参名2),成员名n(形参名n) 例子:Person(string& nm, st原创 2012-07-18 15:16:12 · 731 阅读 · 2 评论 -
自增与指针取值运算符——C/C++运算符优先级表
++和--的运算优先级比*高。#include #include void printa(int * a){ printf("a[]:"); int i; for(i=0;i<7;i++) printf("%d ",*(a+i)); printf("\n\n");}void seta(int *a){ int i;原创 2013-03-17 22:08:48 · 4124 阅读 · 0 评论 -
Linux下Socket编程(TCP)
使用Linux提供的系统函数实现TCP通信。通信步骤: 服务器端:建立Socket->绑定到端口->开始监听->等待->有客户端连接->创建子进程(线程)开始通信->继续监听。 客户端 : 建立Socket->发起向服务器的连接->连接成功->开始通信->通信结束,关闭Socket。主要用到的函数:socket,bind,listen,accept,se原创 2012-08-08 15:53:41 · 858 阅读 · 0 评论 -
bitset类的实现
问题:实现一个bitmap类(为避免与stl中的bitset重名),用于位图。测试用例:BitMap bm(20);bm[3] = 1;bm[5] = 0;bool b = bm[12];其本质上是用内存中的一位来表示某种意义。难点在于,使用int或者unsigned int类型保存多位bool变量(也就是0或者1)后,怎么重载下标操作符。如果不使用下标而是使用函数,例如原创 2013-05-13 23:03:34 · 1443 阅读 · 0 评论 -
全排列问题
问题描述:给定一个序列,例如abc,则其全排列为abc,acb,bac,bca,cab,cba。实现函数void fun(const char * str);输出其全排列。分析:如果只有一个元素a,则其全排列为a;如果有2个元素ab,则其全排列为ab和ba;也就是a和(b的全排列)以及b和(a的全排列);如果有3个元素abc,则其全排列为a和bc的全排列,b和ac的原创 2013-04-25 15:57:17 · 903 阅读 · 0 评论 -
C++中的运行时类型识别(RTTI)
C++中运行时类型识别(RTTI) 1、dynamic_cast操作符 将基类类型的指针或引用安全的转换为派生类类型的指针或引用。注意:基类至少带有一个虚函数,这样源类型才可能是多态的,才会在运行时确定类型。否则将导致编译错误。 如果转换成功,则返回一个指向转换后类型的指针或引用;如果转换失败,指针类型的转换结果为0,引用类型则抛出bad_cas原创 2013-04-24 11:44:29 · 1294 阅读 · 0 评论 -
微软2013年暑期实习招聘笔试回忆[已补充完整]
刚考完,开始觉得做的还好,下来把不确定的验证下,发现悲剧了好多。。【刚刚(20130415晚上)居然收到面试通知邮件。。。不知道那天能不能去。。。。】总共20道选择题,全部不定项。总分100分,时间75分钟。去年时间是90分钟的。。。。1~8,做对3分,半对2分,错误-2分,不做0分9~18,做对5分,半对3分,错误-3分,不做0分19~20,做对13分原创 2013-04-06 18:40:47 · 13198 阅读 · 56 评论 -
传话游戏
传话游戏时间限制: 1000ms 内存限制: 256MB描述Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传话中,不原创 2013-04-10 10:00:15 · 1042 阅读 · 0 评论 -
双向链表的插入删除和查询
实现双向链表的插入删除和查询,并写出测试用例。#include #include using namespace std;/****实现双向链表的插入、查找、删除*xx笔试算法题***/typedef struct Node{ int data; struct Node * next; struct Node * prev;}No原创 2013-03-17 23:57:30 · 1182 阅读 · 0 评论 -
KMeans聚类算法
KMeans算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。k-means 算法基本步骤(1) 从 n个数据对象任意选择 k 个对象作为初始聚类中心;(2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小原创 2013-03-30 15:01:07 · 1967 阅读 · 0 评论 -
const限定符和指针
1、指向const对象的指针;指针指向const对象,但是指针本身是普通变量,可以修改和赋值。例如:const int * p;这样定义效果和上面完全一样:int const * p;这个指针p指向这样的对象:const int,也就是说,p指向的对象是不能修改的。*p = 23;//error: *p might be const但是,原创 2013-03-14 21:28:10 · 1039 阅读 · 0 评论 -
new/malloc的内存不释放
malloc和new的内存,在程序运行期间没有free和delete,在程序结束后一般由操作系统回收。所谓内存泄露,是指在程序中无法使用的内存。进程结束后,所有内存由OS收回。但是:程序中申请的内存自己还是要释放,不能依赖于OS,否则,长期运行的程序到后来将无内存可用,这时就是内存泄露了。原创 2012-10-30 23:47:38 · 1842 阅读 · 0 评论 -
C++虚函数的默认实参
有题目一道: #include using namespace std;class A1{ public: virtual int f(int n = 5){ return 2*n; }};class B: public A1{ public: int f(int n = 10)原创 2012-10-29 22:17:21 · 760 阅读 · 0 评论 -
Linux下多线程编程
Linux 下创建线程的函数是 pthread_create(),函数原型是:int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);参数说明:thread:指向pthread_t类型(即指向线程)的指针,用于引用新创建的线程,实原创 2012-08-05 13:16:06 · 996 阅读 · 0 评论