摘要:先用C++随便声明一个bit结构体: 一位与一位的加法称为半加器,因为不考虑后面的进位加进来: 可以得到两位:一个加法位(原位)和进位。 如果考虑进位也要加进来,称为全加器,实际上是三个单bit加运算: 全加器是两个半加器和一个或门的结合。 将两个二进制数每个位都用全加器计算一下,并联结起来,便得到
阅读全文
摘要:一.软硬件基本知识1.在计算机多如牛毛的硬件部件中最重要的三个是:中央处理器(CPU)、内存和I/O芯片。下图为现代计算机的硬件结构框架PCI bridge被称为北桥,是为了让内存等设备能够跟上CPU的频率。ISA bridge为南桥,让低速设备可以连接到北桥上。2.计算机软件的体系结构:应用程序调...
阅读全文
摘要:主要学习自:http://articles.leetcode.com/2011/11/longest-palindromic-substring-part-ii.html问题描述:回文字符串就是左右对称的字符串,如:"abba",而最长回文子串则是字符串长度最长的回文子字符串,如"abbaca"的最...
阅读全文
摘要:char*型字符串判断为空指针可以是 ==NULL,也可以是==0.如果为空字符串如char * str=""; 判断方法为*str==0;char*字符串不能改变字符串,可以char a= str[0];但不可以 str[0]='0'; 若想声明可以修改的字符串最好:char[] str ="ab...
阅读全文
摘要:首先看一段代码: 1 class B 2 { 3 public: 4 virtual void fun(int i = 1) 5 { 6 std::cout fun(); 会输出driver fun called, 1这里出现...
阅读全文
摘要:一. 关于对象1.内联函数:能够除去函数调用的开支,每一处内联函数的调用都是代码的复制。这是一种空间换取时间的做法,若函数代码量大或者有循环的情况下,不宜内联(这件事有些编译器会自动帮你做)。在类中若直接将函数实现写在类体内,默认内联。如果函数因其复杂度或构建等问题被判断为不能成为inline函数,...
阅读全文
摘要:我们知道,当vector很大的时候,如果使用循环的方式将其中的元素写入文件将非常费时,因此有没有办法将vector一次性写入文件呢?采用流运算符重载的方法可以做到,不仅基本类型的vector可以一次性写入,存储struct的vector也是可以的,这里举一个简单的例子,声明结构体:struct po...
阅读全文
摘要:本博客将记录在Win8.1 ,VS2013环境下编译、配置mongodb C++ driver的流程。1.下载预备下载Boost:http://sourceforge.net/projects/boost/files/boost-binaries/1.58.0/ 注意下binary版的,即安装版的e...
阅读全文
摘要:1.string --> char * char * p = (char*)str.c_str();2.char * -->string char *p = "aaa"; string str(p);3.int-->stringint n=100000;char t[38];int i = 0;if...
阅读全文
摘要:使用C语言样式的文件操作函数,需要包含stdio.h头文件。1.打开文件的函数:1 //oflag的取值为“w”或“r”,分别表示以写或读的方式打开2 FILE* fd = fopen(filename.c_str(), oflag);2.写文件的函数原型:size_t fwrite(const v...
阅读全文
摘要:这个比较简单,直接上代码:bitset *b = new bitset(255);bitset *c = new bitset(0);ofstream out("I:\\test.dat",ios::binary);out.write((char *)b,4);out.close();ifstrea...
阅读全文
摘要:tinyxml是一个开源的C++xml解析工具集,简单、轻量而又高效,所以对于处理xml文件是一个非常不错的选择。由于它开源,所以可以方便地免费下载,下载地址百度一下很容易找到,这里就不多说了。下载后将得到一个压缩包,解压后包含很多.h和.cpp文件,只需将其中六个复制到你自己的工程文件夹中即可:t...
阅读全文
摘要:在32位小端的机器上,如下代码输出是什么:1 char array[12] = {0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08}; 2 short *pshort = (short *)array; 3 int *pi...
阅读全文
摘要:如果两段内存重叠,用memcpy函数可能会导致行为未定义。 而memmove函数能够避免这种问题,下面是一种实现方式: 1 #include 2 using namespace std; 3 void* memmove(void* str1,const void* str2,size_t n) 4...
阅读全文
摘要:在类中,如果什么都没有,则类占用1个字节,一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节。如果只有成员函数,则还是只占用1个字节,因为类函数不占用空间。虚函数因为存在一个虚函数表,需要4个字节,数据成员对象如果为指针则为4字节,注意有字节对齐...
阅读全文
摘要:分解质因数是将一个数差分成为几个质数相乘,本函数n初始取2void prim(int m, int n) { if (m > n) { while (m%n) n++; m/=n; prim(m, n); cout <<...
阅读全文
摘要:#include #include knuth(int n, int m){ srand((unsigned int)time(0)); for (int i = 0; i < n; i++) { if (rand()%(n-i)<m ) { ...
阅读全文
摘要:二叉树首先要有树节点templateclass BinaryNode{public: T element; BinaryNode *left; BinaryNode *right;public: BinaryNode(T passelement); ~BinaryNod...
阅读全文
摘要:在VS中使用类模板出现出现LNK2019: 无法解析的外部符号错误,应在一个.h文件中完成方法的声明与实现,不要将实现放在cpp文件里,VS貌似不支持类模板分离
阅读全文
摘要:使用C/C++操作Oracle数据库,使用OCI可谓是最强大,当然也是最难的方式。Oracle是一个功能复杂而强大的数据库,它可以很好的支持空间数据(Oracle spatial)。如何使用OCI向Oracle数据库中插入空间数据(SDO_GEOMETRY字段)呢,本文将给出代码。 首先,给出...
阅读全文