C++
文章平均质量分 66
wangran51
这个作者很懒,什么都没留下…
展开
-
C++创建 可以实例化但不能继承的类
class vb{private: vb(){} friend C; }//vb这个是一个基类,它的构造函数是private,因此它根本就无法被创建。但是我们显式增加了一个friend C。因此只有C才能创建vb。这是关键点。class C:virtual public vb{};//C虚拟继承自vb,这样在构造C的时侯,需要调用vb的默认构造函数,虽然vb的构造函数是private的,...2013-08-28 12:58:00 · 149 阅读 · 0 评论 -
C++ File IO
在C++中如何实现文件的读写? 作者: infobillows 发表日期: 2007-04-03 21:33 点击数: 465 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代< fstream.h>,所有的C++标准头文件都是无后缀的。)。这是 <iostream...2012-12-18 14:50:00 · 181 阅读 · 0 评论 -
c++ clang_complete
前一段时间发现了clang complete,发现效果很好(广告一下:D).所以推荐一下.clang complete是llvm/clang带来的额外功能.clang complete是靠编译C++文件,应该是获得抽象语法树,进而进行补全的.所以,补全效果非常好,非常准确.但是,也有可能会比较慢. OK,有兴趣的多去Google一下llvm/clang,关注一下llvm/clang这...2012-12-17 17:01:00 · 226 阅读 · 0 评论 -
C++ 虚函数概念
C++中的继承与虚函数各种概念http://www.cnblogs.com/xkfz007/archive/2012/02/16/2354444.html虚继承与一般继承虚继承和一般的继承不同,一般的继承,在目前大多数的C++编译器实现的对象模型中,派生类对象会直接包含基类对象的字段。而虚继承的情况,派生类对象不会直接包含基类对象的字段,而是通过一个间接的指针去存取基类对象中的字段。...2013-05-27 16:31:00 · 103 阅读 · 0 评论 -
Endian Bitfiled
Endianess是个比较tricky的问题,特别是当数据在不同类型间转换时。 先看看在一台32位的little-endian机器上,以下代码的行为:C代码#include<stdio.h>//memcpy#include<stdlib.h>//printftypedefstruct{chara;charb;charc;...2013-05-27 14:42:00 · 100 阅读 · 0 评论 -
CPU Sin
1 #include <iostream> 2 #include <cmath> 3 #include <ctime> 4 #include <windows.h> 5 6 using namespace std; 7 8 //得到循环0xFFFFFFFF次用的秒数 9 unsigned int test()...2012-08-22 21:12:00 · 142 阅读 · 0 评论 -
Linux下获取毫秒级时间差
Linux下获取毫秒级时间差使用Linux的gettimeofday函数可以达到这个目的 其中t1=t_start.tv_sec是公元1970年至今的时间(换算为秒) t2=t_start.tv_usec是当前秒数下的微妙数 所以将t1*1000+t2/1000可以得到当前的毫秒数引用 #include <stdio.h> #include <sys/time...2012-08-22 19:46:00 · 571 阅读 · 0 评论 -
C++ 虚函数表解析
C++虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板...2013-05-13 11:10:00 · 71 阅读 · 0 评论 -
STL_Hash_map
在windows 和 linux下引入hash_set、hash_map头文件推荐使用方法:在源代码的前面写入一下代码: // just for "#include <hash_*>" in linux#if__GNUC__>2#include<ext/hash_set>#include<ext/hash_map>usingnamespace...2013-05-07 11:36:00 · 87 阅读 · 0 评论 -
C++ struct constructor
<wbr><wbr><wbr><wbr><span></span>下面看看一道关于C++中笔试题:</wbr></wbr></wbr></wbr>// FileName:test.cpp1:<wbr&2013-05-03 18:11:00 · 536 阅读 · 0 评论 -
struct 与 class区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗? 能!!!<wbr></wbr>既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制:<wbr>&...2013-05-03 12:17:00 · 75 阅读 · 0 评论 -
STL Priority_Queue
priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法 实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相 似的 priority_queue, 以加深对 priority_queue 的理解 #include<iostre...2013-05-02 23:03:00 · 77 阅读 · 0 评论 -
GCC参数
gcc -l参数和-L参数 ·-l参数和-L参数-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtes...2013-04-27 17:23:00 · 90 阅读 · 0 评论 -
cJsonFiles数据结构
先看json的数据结构c中没有对象,所以json数据是采用链表存储的view sourceprint?01.typedef struct cJSON {02.struct cJSON *next,*prev;<wbr><wbr><wbr>// 数组 对象数据中用到</wbr></wbr>&l...2013-04-27 17:21:00 · 147 阅读 · 0 评论 -
C++ STL Pair
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair<string, string> a("James...2013-04-26 11:22:00 · 137 阅读 · 0 评论 -
ifstream eof()函数
用ifstream的eof(),竟然读到文件最后了,判断eof还为false。网上查找资料后,终于解决这个问题。参照文件:http://tuhao.blogbus.com/logs/21306687.html在使用C/C++读文件的时候,一定都使用过eof()这个函数来判断文件是否为空或者是否读到文件结尾了,也会在使用 这个函数的过程中遇到一些问题,如不能准确的判断是否为空或者是否到了...2012-12-18 17:39:00 · 1001 阅读 · 1 评论 -
C++ eof()函数陷阱
C++中用eof()检查是否到达文件结尾 分类:C 编程2007-06-26 11:15到达文件结尾有两种可能的解释:一是当程序从一个文件读取数据时,在程序读取文件中的最后一项之后就立即出现文件结束的条件。另一种是只有当程序想越过文件的最后一项进行读取时才出现文件结束的条件。Ada和Pascal采用第一种解释。在这些语言中,一个从外部文件读取数据的...2012-12-20 16:49:00 · 871 阅读 · 0 评论 -
C++中的空类,编译器默认可以产生哪些成员函数
C++中创建一个空类: class Empty {}; 默认会生成4个函数,其函数的原型如下:public: Empty() { ... }Empty(const Empty& rhs) { ... }~Empty() { ... }Empty& operator=(const Empty& rhs) { ... }说明:1) 这些函数只有在需要调用的...2013-08-22 19:19:00 · 186 阅读 · 0 评论 -
Setting Gdb on Windows
数据结构第二篇: eclipse SDK 安装和配置 GDB 为 C/C++ 开发环境提供 debug 调试 背景: debug 的时候出现 Error while launching command: gdb.exe --version 异常 原因: 没有安装 gdb 调试工具。 听说,最新的 MinGW 已集成 GDB 调试工具,本人安装的 MinGW 5.1.4 版本并没有集成 gd...2013-08-12 23:16:00 · 169 阅读 · 0 评论 -
Setting up compiler in Windows Eclipse for cpp
Setting up a compilerPrev Next Setting up a compilerUnfortunately Eclipse only provides theIntegrated Development Environment (IDE) but it is missing the actual co...2013-08-12 22:42:00 · 113 阅读 · 0 评论 -
sizeof
struct COW {int num;int MakeMilk;};COW* cow = NULL;cow = (COW* )malloc(sizeof(COW)*n); sizeof(COW)= 8 :two Intsizeof(cow) = 4 :pointer size, because cow is the dynamic array, it can not b...2013-03-01 13:48:00 · 75 阅读 · 0 评论 -
二维数组及其指针基础
编程学习-二维字符串数组的初始化-动态内存分配动态内存分配1.堆内存分配 :C/C++定义了4个内存区间:代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store)。堆的概念:通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间...2013-02-28 11:07:00 · 74 阅读 · 0 评论 -
C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别
字符数组的长度计算:必须以终止符’/0'作为边界,但对字符数组赋值时,有两种方式:1:定义时用字符初始化(1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6上式等价于:(2)char chs[7] = {'a', 'c', '0', 'z', '3','d', '/0'}; // 长度为6也等价于:(3)char chs[...2013-02-27 15:07:00 · 199 阅读 · 0 评论 -
C语言长度为0的数组
前面在看Xen的源码时,遇到了一段代码,如下所示:注意上面最后一行的代码,这里定义了一个长度为的数组,这种用法可以吗?为什么可以使用长度为0的数组?长度为的数组到底怎么使用?……这篇文章主要针对该问题进行简单的讲解。废话不多说了,现在就开始。长度为的数组在标准c和c++中是不允许的,如果使用长度为的数组,编译时会产生错误,提示数组长度不能为。但在GNUc中,这种用法却是合法的。它的最...2013-06-28 11:43:00 · 142 阅读 · 0 评论 -
CRF++使用
前段时间写了中文分词的一些记录里面提到了CRF的分词方法,近段时间又研究了一下,特把方法写下来,以备忘,另外,李沫南同学优化过CRF++,见:http://www.coreseek.cn/opensource/CRF/。我觉得CRF++还有更大的优化空间,以后有时间再搞。 1 下载和安装CRF的概念,请google,我就不浪费资源啦。官方地址如下:http://crfpp.so...2012-12-28 11:01:00 · 152 阅读 · 0 评论 -
C++继承机制
从语言和概念的角度来说,子类继承父类是继承了所有protected和public非static成员(static成员是共享而不是继承),而成员包括函数和数据。所以从概念上来说,成员函数和成员变量都被继承了。从实现上来说,实现要在外显上不违反概念,在内部可以非常随意。所有的实现子类继承父类成员函数只是子类共享了父类的函数,没有两份拷贝。编译器知道父类的某成员函数的地址,那么在子类调用父类的该方法...2013-06-07 11:35:00 · 86 阅读 · 0 评论 -
C++:从子类访问父类的私有函数
C++:从子类访问父类的私有函数 转自 龙音阁http://blog.sina.com.cn/dragonsound 感谢原作者的工作 (2009-09-01 22:44:21) 标签: 虚函数 c private f1 it 众所周知,c和c++的数组都是不安全的,因为无论c还是c++都不提供数组边界检查功能,这使得数组溢出成为可能。从某个意义上说,c和c++是一种缺少监督的语言,然而这也正...2013-06-07 11:33:00 · 2519 阅读 · 0 评论 -
Linux C正则
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。 C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),一般分为三个步骤,如下所示: C语言中使用...2013-06-19 18:21:00 · 109 阅读 · 0 评论 -
C++ Map Source
/* * ===================================================================================== * * Filename: main.cpp * * Description: * * Version: 1.0 * Created: 2012年12月18日 13时29分04秒 * Revision: none ...2012-12-21 11:39:00 · 105 阅读 · 0 评论 -
C++ Map传递参数
map可以被看做是普通变量一样可以直接赋值,同时map也可以看做普通变量一样在函数间以值传递或者以指针传递方式传递。下面是一个小小的例子:#include <iostream> #include <map> #include <string.h> using namespace std;void translate(map<int,int&g...2012-12-20 17:29:00 · 2855 阅读 · 0 评论 -
C++ Map用法
/************************************************************************ * * Map的特点: 1、存储Key-value对 * 2、支持快速查找,查找的复杂度基本是Log(N) * 3、快速插入,快速删除,快速修改记 * /**********************************************...2012-12-20 17:14:00 · 103 阅读 · 0 评论 -
在继承中派生类成员的访问权限测试
派生类对自身基类的private成员没有访问权限,对基类对象的protected成员没有访问权限,对派生类对象的(基类之外)的private和protected成员具有访问权限。由于C++基础不好,平时也不用它,导致今天才纠正一个非常关键的错误,类的访问权限,是对类而言的,而不是对类的对象而言的。一直都理解错了。这句话都没脸写出来,还是写下来了。下面是一段简答的测试代码。对于调用成员函...2013-04-24 19:44:00 · 141 阅读 · 0 评论 -
C++中 public,protected, private 访问标号小结
C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。pu...2013-04-24 14:58:00 · 84 阅读 · 0 评论 -
C++ STL博客
http://www.cnblogs.com/miao11621/archive/2012/08/31/2665565.html2013-04-23 18:32:00 · 92 阅读 · 0 评论 -
赋值语句的返回值
#include <iostream> using namespace std; int main() {char A[4] = {'a', 'b', 'c', '\0'};char B[4] = {'A', 'B', 'D', '\0'};char* a = A;char* b = B;while(1){if((*b++ = *a++) == '\0'){break;}}}...2013-03-21 17:57:00 · 238 阅读 · 0 评论 -
C++ 补全插件
config vim + clang complete with libclang on windows/linux最近私的系统因为重装而数据挂了,只好重新配一次环境。也就是这个时候发现clang complete版本更新了,它更新才没几天,不过变化挺大,在linux下可以使用vmb包来安装了(1.8版)。不过安装时依然有各种坑。 首先,如果你用的clang版本是2.8/2.9的话(3....2012-10-30 20:16:00 · 526 阅读 · 0 评论 -
8皇后(按列递归)
/* * ===================================================================================== * * Filename: queen.c * * Description: * * Version: 1.0 * Created: 2011年12月10日 12时22分09秒 * Revision: none * ...2011-12-10 17:55:00 · 85 阅读 · 0 评论 -
迷宫(多出口)
/* * ===================================================================================== * * Filename: maze.c * * Description: * * Version: 1.0 * Created: 2011年12月09日 21时33分32秒 * Revision: none * C...2011-12-10 12:09:00 · 314 阅读 · 0 评论 -
gsl eclipse
1 我的gsl安装路径:D:/GnuWin32 1 eclipse 新建c++ project Helloworld类型的工程,取名gsl_test;2 设置工程属性,将gsl 添加到工程中。 2.1 project-->properties--->C/C++ builder--->GCC C++ complier --->Includes 添加"D:/Gnu...2012-04-25 14:27:00 · 139 阅读 · 0 评论 -
Beli Makfile for linux
.SUFFIXES: .c .u CC= gcc # CFLAGS_MAC = -g -Wall -O3 -DHAVE_INLINE -DGSL_RANGE_CHECK_OFF -Winline -funroll-loops -fstrict-aliasing -fsched-interblock -falign-loops=16 -falign-jumps=16 -falign-function...2012-04-25 13:12:00 · 151 阅读 · 0 评论