2013年9月28日

摘要: 树形选择排序:http://blog.csdn.net/itcastcpp/article/details/8205037http://blog.csdn.net/zhoujunbuaa/article/details/6001491http://www.linuxidc.com/Linux/2012-10/72408.htm使用分治法用1.5*N次比较求数组的最大值和最小值http://www.cppblog.com/mydriverc/articles/31664.htmlhttp://job.xdnice.com/content/BiShiJingYan/2012-12/3944.htm 阅读全文
posted @ 2013-09-28 23:10 江在路上 阅读(116) 评论(0) 推荐(0) 编辑

2013年5月7日

摘要: 传输速率是指集线器的数据交换能力,也叫“带宽”,单位是Mbps(兆位/秒),目前主流的集线器带宽主要有10Mbps、54Mbps/100Mbps自适应型、100Mbps和1Gbps四种。 Mbps是Million bits per second的缩写,1Mbps代表每秒传输1,000,000位,即每秒传输1,000,000 / 8 = 125,000个 字节 = 122 KB = 0.119MB。 该缩写用来描述数据传输速度。例如:8Mbps=8Mbit/s=每秒传输8M个比特位=1MB/s=每秒钟传输1M个字节。数据传输速率的单位,bit代表位,存放一位二进制数,即 0 或 1,最小... 阅读全文
posted @ 2013-05-07 20:06 江在路上 阅读(598) 评论(0) 推荐(0) 编辑

2013年5月1日

摘要: 所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。 <iostream>和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用<iostream.h>时,相当于在c中调用库函 阅读全文
posted @ 2013-05-01 13:26 江在路上 阅读(214) 评论(0) 推荐(0) 编辑

2013年4月27日

摘要: 转载:http://www.cnblogs.com/zjp8023/archive/2008/12/28/c01.html一般的数组初始化,也就是申请数组的时候我们就初始化,1.char buffer[1000] = {0}; //一般的话,我们只将数组初始化为0,然后再使用.C++中,编译器会把第一个初始化值赋给数组的第一个元素,然后用0赋值给其余的元素.2.char buffer[] = {1,2,3,4,5,6}; 数组会自动计数,我们不用指定数字,以免画蛇添足反而出错。3.char buffer[1000];memset(buffer,10,sizeof(buffer)),对于有特殊需 阅读全文
posted @ 2013-04-27 13:02 江在路上 阅读(400) 评论(0) 推荐(0) 编辑
 
摘要: 当初始化值的个数少于数组元素个数时,前面的按序初始化相应值,后面的初始化为0(全局或静态数组)或为不确定值(局部数组).上面的资料是C和C++语言的标准规范,但实际编译器处理时,可能会和规范有所不同.因为编译器原则上要遵从语言规范,但对于局部数组的不确定值到底是多少,怎么处理,编译器就可以灵活处理.我测试了三种编译器,其实编译器赋予的值是固定的,都是0. 一直以为inta[256]={0};是把a的所有元素初始化为0,inta[256]={1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事,翻了一下《TheC++ProgrammingLanguage》总算有定论。PDF的.. 阅读全文
posted @ 2013-04-27 12:47 江在路上 阅读(749) 评论(0) 推荐(0) 编辑

2013年4月26日

摘要: #includeusing namespace std;class String{public: String(int n); String(const String &string);private: int n;};String::String(int m){ n = m; cout << "constructor" << endl;}String::String(const String &string){ n = string.n; cout << "copy constructor" < 阅读全文
posted @ 2013-04-26 10:19 江在路上 阅读(122) 评论(0) 推荐(0) 编辑

2013年4月25日

摘要: 转载:http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html隐藏很容易被我们所忽视而导致一些问题,先看一个例子:#include<iostream>using namespace std;class Base{public: void fun(void) {};};class Child: public Base{public : void fun(int i) {};};int main(void){ Child c; c.fun(); return 0;}上面的代码编译错误:'fun'... 阅读全文
posted @ 2013-04-25 16:40 江在路上 阅读(158) 评论(0) 推荐(0) 编辑

2013年4月23日

摘要: 一些基本概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了两 步工作,第一步,将每个.cpp(.c)和相应.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LINK生成最终的.exe文件 阅读全文
posted @ 2013-04-23 21:42 江在路上 阅读(357) 评论(0) 推荐(0) 编辑

2013年4月22日

摘要: 1、#ifndef,#define,#endif #ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。#ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况。实现方式:#ifndef __SOMEFILE_H__#define __SOMEFILE_H__...... // 一. 阅读全文
posted @ 2013-04-22 20:44 江在路上 阅读(456) 评论(0) 推荐(0) 编辑

2013年4月21日

摘要: 本文部分内容转载自:http://www.cppblog.com/smagle/archive/2010/05/14/115286.aspx 在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。 dynamic_cast允许运行时刻进行类型转换,从而使程序能够在一个类层次. 阅读全文
posted @ 2013-04-21 11:17 江在路上 阅读(255) 评论(0) 推荐(0) 编辑