C++
文章平均质量分 72
felixs
浏览器开发移植优化 技术邮箱:talking1239gmail.com
展开
-
单链表的逆置
单链表的逆置 (2011-08-27 16:46:20)这个可以有多种实现方式,该算法是不移动数据,只修改指针指向(把指针方向直接倒置),最后把head变成最后一个元素,需要head-next=null;转载▼标签: 单链表逆转 杂谈分类: VC 学习typedef struct Nod转载 2013-06-13 22:16:24 · 578 阅读 · 0 评论 -
多线程的条件变量
pthread_cond_wait()与pthread_cond_signal()分类: 毕设相关DLM 2012-04-24 17:28 472人阅读 评论(0)收藏举报signalnullpthread_cond_wait()用法:ptread_mutex_lock(&mut);pthread_cond_wait(&cond, &mut);pthread_m转载 2013-06-14 23:14:56 · 636 阅读 · 0 评论 -
Linux C 多线程编程 互斥锁与条件变量
一、互斥锁互斥量从本质上说就是一把锁, 提供对共享资源的保护访问。 1. 初始化: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化: 对于静态分配的互斥量, 可以把它设置为PTHREAD_MUTEX_INITIALIZER, 或者调用pthread_mutex_init. 对于动态分配的互斥量, 在申请内存(m转载 2013-06-14 22:56:49 · 659 阅读 · 0 评论 -
环形缓冲区的实现原理(ring buffer)
估计很多项目多基于效率的原因需要实现自己的RingBuffer.在通信程序中,经常使用环形缓冲区作为数据结构来存放通信中发送和接收的数据。环形缓存区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。1、环形缓冲区的实现原理环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和写指针就可以实现缓冲转载 2013-06-15 11:16:30 · 2234 阅读 · 1 评论 -
高质量C++/C编程指南 -- 附录B :C++/C试题
高质量C++/C编程指南 -- 附录B :C++/C试题及答案全书参考:http://man.chinaunix.net/develop/c&c++/c/c.htm附录B :C++/C试题 本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软转载 2013-06-08 23:33:13 · 740 阅读 · 0 评论 -
含有虚函数的类sizeof大小
01 #include 02 using namespace std; 03 04 class Base1{ 05 virtual void fun1(){} 06 virtual void fun11(){} 07 public: 08 virtual ~Base1(); 09 }; 10 11 class Base2{ 12转载 2013-07-03 10:22:46 · 1558 阅读 · 0 评论 -
pthread_cleanup_push与pthread_cleanup_pop的作用
首先你必须知道pthread_cleanup_push与pthread_cleanup_pop的目的(作用)是什么。比如thread1:执行pthread_mutex_lock(&mutex);//一些会阻塞程序运行的调用,比如套接字的accept,等待客户连接sock = accept(......); //这里是随便找的一个可以阻塞的接口转载 2013-06-15 00:30:56 · 1599 阅读 · 0 评论 -
空类、含静态成员的类、普通类(不含虚函数、虚继承)的sizeof大小
空类、含静态成员的类、普通类(不含虚函数、虚继承)的sizeof大小#include using namespace std;class CEmpty{};class CStaticMember{static int a;};///////////////////////////////////////////////////////////////转载 2013-07-03 10:17:48 · 1375 阅读 · 0 评论 -
类大小sizeof(class)
class如同int等内建类型一样,分配有一定大小的内存,本文通过基本类、含有虚函数的类、单继承的派生类和多重继承的派生类来考察类的内存布局规律。1、普通类对象的大小[cpp:firstline[1]] view plaincopyprint?//普通类对象的内存布局 struct C000 { }; struct C001 { C001() : c_(0x转载 2013-07-03 10:13:11 · 843 阅读 · 0 评论 -
排序算法汇总总结
排序算法汇总总结直接看看思想就好了,里面的程序有问题。一、插入排序 直接插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素转载 2013-06-12 17:47:27 · 810 阅读 · 0 评论 -
二叉树的遍历
这种东西还是做个标记吧。这里引申一下:如何创建、遍历树以及操作树的某个节点,这是某公司的面试题,其实在WEBKIT的Dom & Render tree的实现中有应用到。遍历概念 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉转载 2013-06-13 21:40:27 · 660 阅读 · 0 评论 -
C++基础知识
1. 面向对象的程序设计思想是什么?答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2. 什么是类?答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。 3. 对象都具有的两方面特征是什么?分别是什么含义?答:对象都具有的特征是:静态特征和动态特征。静态特征是指能描述对象的一些属性(成员变量),动态特征是指对象表现出来的行为转载 2013-06-12 23:52:35 · 1697 阅读 · 1 评论 -
描述编译和链接过程
描述编译和链接过程 原文摘自:http://www.cppblog.com/shifan3/archive/2007/01/05/17325.html 详解link详解link有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的转载 2013-03-21 10:29:03 · 489 阅读 · 0 评论 -
C++构造函数初始化顺序
C++构造函数按下列顺序被调用:(1)任何虚拟基类的构造函数按照它们被继承的顺序构造;(2)任何非虚拟基类的构造函数按照它们被继承的顺序构造;(3)任何成员对象的构造函数按照它们声明的顺序调用;(4)类自己的构造函数。#include using namespace std;class OBJ1{public: OBJ1(){ cout <<"OBJ转载 2013-05-09 14:29:09 · 572 阅读 · 0 评论 -
谈VC++对象模型
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ O转载 2013-05-10 15:58:16 · 702 阅读 · 0 评论 -
如何定义和实现一个类的成员函数为回调函数(转)
转自:http://blog.csdn.net/wuzhong325/archive/2009/05/15/4187054.aspx 如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。通过查询资料发现,其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递this指针给其成员函数从而实现程序函数可以访问C++转载 2013-06-08 22:28:03 · 571 阅读 · 0 评论 -
一些基本知识题目讲解
一些基本知识题目讲解http://blog.sina.com.cn/s/blog_5dc7bbf80100wgqd.html转载 2013-06-08 22:40:15 · 552 阅读 · 0 评论 -
C++中虚函数工作原理和(虚)继承类的内存占用大小计算
一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 vtbl。当一个对象调用了虚函数,实际转载 2013-06-09 22:18:57 · 646 阅读 · 0 评论 -
strstr函数的自己实现
reference to:http://blog.csdn.net/wangyangkobe/article/details/6787516http://baike.baidu.com/view/745156.htm在计算机内存中,0,'\0',null,是一样的,值也是一样的,都是0。以数字的方式读取就是0,以字符串的方式读取就是'\0',以程序命令或者其他方式读原创 2013-06-10 15:43:09 · 1987 阅读 · 0 评论 -
const char*, char const*, char*const的区别
const char*, char const*, char*const的区别2009-03-08 13:50 8047人阅读 评论(4) 收藏 举报google面试gccnull测试cconst char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。转载 2013-06-10 16:02:26 · 630 阅读 · 0 评论 -
单件模式(Singleton)
虽然是.net实现,但思想是一样的,就不用C++再实现一次了。老生常谈:单件模式 单件模式特点: 1 :单件类只可有一个实例。 2 :单件类必须自己创建自己这惟一的实例。 3 :单件类必须给所有其他对象提供这一实例。 创建单件常用的方式: 1:静态变量法,也叫惰性实例化;原创 2013-06-14 22:18:22 · 832 阅读 · 0 评论