C++
文章平均质量分 64
Tony_Wong
这个作者很懒,什么都没留下…
展开
-
C++与JAVA的区别
这是Java与C++区别的一个比较完整的答案,大家可以学习一下。JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上转载 2014-02-08 12:37:41 · 526 阅读 · 0 评论 -
15款C/C++程序员必备的编译器和IDE
本文由 伯乐在线 -honpey 翻译自designzum。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。转载 2014-05-23 10:21:45 · 593 阅读 · 0 评论 -
c++的历史
本文由 伯乐在线 -honpey 翻译自Albatross。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。转载 2014-05-23 10:51:24 · 376 阅读 · 0 评论 -
能让你成为更优秀程序员的10个C语言资源
本文由 伯乐在线 -archychu 翻译自mycplus。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。一些人觉得编程无聊,一些人觉得它很好玩。但每个程序员都必须紧跟编程语言的潮流。大多数程序员都是从C开始学习编程的,因为C是用来写操作系统、应用程序最常用的语言。C编程笔记这些是华盛顿实验学院C编程入门课的部分笔记。它们是以《c程序设计语言》的补充笔记(从19转载 2014-05-23 10:22:00 · 519 阅读 · 0 评论 -
MyLib
#include #include #include #include #include using namespace std;templatevoid printVector(T& arg){ typename T::iterator it = arg.begin(); while(it != arg.end()) { cout<<*it<<" "; it++原创 2014-06-06 13:00:17 · 731 阅读 · 0 评论 -
C\C++代码优化的27个建议
1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化考虑(或者完全不优化)。这里有句俗语:让经常执行的路径运行更加高效,而运行稀少的路径正确运行。2. 代转载 2014-05-23 10:17:04 · 584 阅读 · 0 评论 -
移位实现乘除法
移位实现的乘除法 移位实现的乘除法比直接乘除的效率高很多。用移位实现乘除法运算 a=a*4; b=b/4; 可以改为: a=a b=b>>2; 说明: 除2 = 右移1位 乘2 = 左移1位 除4 = 右移2位 乘4 = 左移2位 除8 = 右移3位 乘8 = 左移3位 ... ...转载 2014-05-23 10:08:45 · 3168 阅读 · 0 评论 -
小数在内存中的存储表示
http://blog.csdn.net/acdreamers/article/details/19012279整数在内存中的存储方式比较简单,我们来看看小数在内存中的存储方式。首先,要学会十进制小数与二进制小数之间的转换。 (1)二进制小数转化为十进制小数 比如把二进制小数110.11转化为十进制小数,步骤如下: (2)十进制小数转转载 2014-05-22 16:43:42 · 690 阅读 · 0 评论 -
迭代器和下标之间转换
转换主要是使用stl中的advance和distance函数来进行的,advance是将iterator移动指定个元素,distance是计算两个iterator直接的距离。distance计算第一个参数到第二个参数之间的距离。如果第二个参数的顺序在第一个参数前面的话,函数是会返回负值的;如果迭代器不在一个容器内,程序会抛出异常。advance是将第一个参数向后移动第二个参数指定个元素转载 2014-06-07 16:49:00 · 7782 阅读 · 0 评论 -
15款C/C++程序员必备的编译器和IDE
本文由 伯乐在线 -honpey 翻译自designzum。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。当前,Web开发人员编程语言的选择很多,比如Java、.Net、PHP、Ruby、Perl、Python等等。今天,本文想和大家讨论下两种古老而又广泛流行的编程语言:C和C++。C/C++自身有许多优良的特性,代码运行高效,并有一些外围工具的支持。如今,这两种语言以其庞转载 2014-05-23 10:21:07 · 2541 阅读 · 0 评论 -
宏定义中的特殊参数(#、##、...和__VA_ARGS__) .
最近在android的某个代码的头文件中发现很多__VA_ARGS__,google一下.还是比较有用.附带其它宏定义参数,一起记录之.1. ...和__VA_ARGS__看看msdn上给得例子吧[cpp] view plaincopyprint?#include #define EMPTY #define CHECK1(x, ...)转载 2014-09-03 11:26:56 · 691 阅读 · 0 评论 -
宏定义详解
一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析1转载 2014-09-03 11:14:05 · 659 阅读 · 0 评论 -
C/C++中如何获取数组的长度
C/C++中如何获取数组的长度? 收藏 C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,l转载 2014-09-26 16:42:33 · 1177 阅读 · 0 评论 -
得到一个field在结构体(struct type)中的偏移量
宏定义:得到一个field在结构体(struct type)中的偏移量#defineOFFSETOF(type, field)((size_t)&(((type*)0)->field))(type *)0:把0地址当成type类型的指针。((type*)0)->field:对应域的变量。&((type*)0)->field:取该变量的地址转载 2014-09-03 11:13:31 · 710 阅读 · 0 评论 -
各种知识图
http://www.cnblogs.com/Mainz/archive/2012/09/08/2676618.html转载 2014-09-08 20:52:46 · 419 阅读 · 0 评论 -
C++基础教程(一) C++基础/对象的生成与销毁
(一)C++语言基础1.C与C++的关系 C++语法由四部分内容构成:继承C的语言的部分:代码块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(build-in types)、数组(array)、指针(pointers)、宏(macro)面向对象部分:类(class、构造和析构)、封装(encapsulat原创 2014-07-06 22:01:49 · 835 阅读 · 0 评论 -
C++中三种正则表达式比较(C regex,C ++regex,boost regex)
工作需要用到C++中的正则表达式,所以就研究了以上三种正则。1,C regex/* write by xingming * time:2012年10月19日15:51:53 * for: test regex * */#include #include #include #include #include #include using nam转载 2014-05-31 08:33:10 · 1164 阅读 · 0 评论 -
C++静态库与动态库
C++静态库与动态库这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非转载 2014-06-10 09:58:55 · 462 阅读 · 0 评论 -
C++开发者都应该使用的10个C++11特性
C++开发者都应该使用的10个C++11特性 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。 auto在C++11之前,auto关键字用来指定存储期转载 2014-04-28 16:44:08 · 484 阅读 · 0 评论 -
"Pure Virtual Function Called": An Explanation
The C++ Source"Pure Virtual Function Called": An Explanationby Paul S. R. ChisholmFebruary 26, 2007AdvertisementSummary"Pure virtual function called" is the转载 2014-04-28 15:04:59 · 588 阅读 · 0 评论 -
浅析string 与char* char[]之间的转换
与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些转载 2014-05-02 10:01:07 · 382 阅读 · 0 评论 -
c++前置申明
原创文章,转载请注明出处,谢谢! 作者:清林,博客名:飞空静渡 刚开始学习c++的人都会遇到这样的问题:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样:[cpp] view plaincopyprint?//a.h #转载 2014-05-02 10:20:31 · 436 阅读 · 0 评论 -
C获取变量名
需求:定义函数 f(int n),使其输出变量名和变量值。例: 对int m = 5, f(m) 的输出为m = 5. 答案:12345678910#include #define PRINT_VAR(C) printf( "%s = %d\n", #C, C)转载 2014-03-20 11:24:29 · 1438 阅读 · 0 评论 -
公司中 C和C++程序员进阶之路
从一次考试说起。2010年10月份,综合部邀请我给新入职3个月的员工草拟考试试题,这些同事大部分在公司做的实习,算起来至少也有5、6个月的工作经验了吧。试题的内容,是针对日常需要面对的问题出的案例,比如,查找文件、修改下权限等,其中最后20分题,就是按要求在屏幕上输出一个由数字组成的菱形。说这些无非是想说明,考题比较简单。但考试的结果却是,有人得到80多分,有人得到20多分,相互间转载 2014-05-02 09:47:44 · 3481 阅读 · 0 评论 -
C++类的大小与空类的大小
C++ 中类的大小只与非静态数据成员有关,因为其静态变量和方法是所有对象所共有的class A{ static int a; static int f() { return A::a; } int f2() { return A::a; }}; sizeof(A)的大小为1 class B{ static int原创 2014-03-19 08:54:10 · 588 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
详细解说 STL 排序(Sort)作者Winter 一切复杂的排序操作,都可以通过STL方便实现 !0 前言: STL,为什么你必须掌握对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不转载 2014-04-29 19:52:27 · 409 阅读 · 0 评论 -
c++cookbook
C++ Programmer's Cookbook转载 2014-04-29 19:42:50 · 470 阅读 · 0 评论 -
C++的忠告
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词转载 2014-02-08 12:36:47 · 438 阅读 · 0 评论 -
DLL入门
DLL入门浅析(1)——如何建立DLL初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮助。 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的OBJ文件转载 2014-05-02 09:57:29 · 607 阅读 · 0 评论 -
g++的编译过程
之前一直用IDE来开发软件, 对g++下面的类的编译也是一知半解, 做实验很多也是采用g++ -o main main.cpp 之类的简单的测试最近项目需要,研究对c++的编译和运行, 刚开始测试C++的特性, 并使用命令行式编译过程,下面记录一下最近2天的心得需要测试如何编译一个c++类的过程,并逐渐完善。但是刚开始的时候就开始有问题出来了以前一直采用[p转载 2014-05-02 10:27:05 · 453 阅读 · 0 评论 -
重构
http://www.cnblogs.com/matchcolor/archive/2010/07/26/1785593.html转载 2014-04-12 16:01:41 · 642 阅读 · 0 评论 -
C++ 中double float转为string的方法
方法1:sprintf(char*destination,char*,double/float) 是用destination来存储double/float值的字符然后直接string a(destination)。该方法有一个缺点,就是存储的值可能和输入的double/float的值有误差,即最后字符串a中的值和输入的double/float的值不一样,如float f=4.34转载 2014-04-12 14:04:38 · 13333 阅读 · 0 评论 -
类定义时定义的函数与内联函数的关系
1)inline 尽可能内联2)类内定义的函数,同样是尽可能内联3)外部函数,静态函数,一般不考虑内联不内联,除非编译器,内联很出色,把一切函数都尽可能内联。 1)2) 几乎每一个编译器都会尽可能内联,除非你的函数和内联完全背道而驰。 3)几乎每一个编译器,都不去考虑内联,除非编译器内联很牛,并且很疯狂,遵守,一切可以内联的都去内联的疯狂设想转载 2014-04-12 10:32:12 · 576 阅读 · 0 评论 -
c++开源项目汇总
、、http://daixinghe.blog.163.com/blog/static/1843615920096653733850/?fromdm&fromSearch&isFromSearchEngine=yes向C++初学者推荐的几个开源库标签: STL boost SDL wxWidgets 开源库 推荐 2009-07-04 22:47前阵子写了《C转载 2014-05-16 22:00:04 · 734 阅读 · 0 评论 -
C++函数重载
在C++中编译器区分不同重载函数的依据是函数调用时的实参,而不是原创 2014-04-09 21:26:08 · 1100 阅读 · 0 评论 -
读《修改代码的艺术》
来自: dreamhead (原来一切就是这么简单!)作为一个程序员,获取知识是让我不断前进的动力,而读书是我获取知识的一条重要途径。在这个“经典”、“必读”过剩的年代里,大多数的书都仅仅扮演着传播知识的角色,真正改变自己对某些问题看法的书其实少之有少。限于读书时的眼界和能力,在我列表中,让我拍案惊奇的书只有几本。Martin Fowler的《重构》,严格说来,我并没有完整的读完这本书,不转载 2014-05-09 15:43:43 · 756 阅读 · 0 评论 -
C++虚表与多态
C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R转载 2014-03-25 20:42:16 · 730 阅读 · 0 评论 -
C++虚表
C++利用虚表来实现对虚函数的调用。 每个使用虚函数的class都有一张单独的虚函数表,虚函数表是在编译时候创建的静态数组。每个虚函数在虚函数表中都包含一个入口,类的实例可以调用虚函数的入口,虚函数的入口其实就是一个函数指针。 当一个class创建一个实例时,编译器就添加了一个指向基类的隐藏指针(*__vptr)。*__vptr是一个真实的指针,被子类继承。不像*t转载 2014-03-25 20:19:59 · 791 阅读 · 0 评论 -
打印格式控制
printf格式控制完整格式:% - 0 m.n l或h 格式字符面组格式说明各项加说明:①%:表示格式说明起始符号缺少②-:-表示左齐输省略表示右齐输③0:0表示指定空位填0,省略表示指定空位填④m.n:m指域宽即应输项输设备所占字符数N指精度用于说明输实型数数位数指定n隐含精度n=6位⑤l或h:l整型指long型实型指doub转载 2014-09-28 09:34:24 · 644 阅读 · 0 评论