C++技术学习
C++的一些学习心得
superbin
软件工程师
展开
-
字符数组两种定义方式的区别
1. char text[] = "Hello world.";2. char *text = "Hello world.";第一行定义了一个字符型数组,并初始化为字符串"Hello world.",text是指向数组的首地址,数组中的元素可以修改。第二行定义了一个指向char类型的指针text,并将字符串常量“Hello world.”的首地址赋值给text,不能通过text修改字符原创 2013-01-15 18:30:38 · 1000 阅读 · 0 评论 -
多伦多大学大一学生C语言作业
帮别人做的,和国内大学比比看,差距在哪里。你大一的时候在做什么?反正我大一学C语言的时候只会照着课本敲。1. 用链表实现栈2. 用两个栈实现队列(用1中的栈)3. 实现二叉树的4种遍历:前序,中序,后序,按层遍历(使用2中的队列) Item.h/* Item is actually a link to a tree */typedef struct TREEn原创 2012-11-26 16:04:43 · 1291 阅读 · 1 评论 -
C++中,内联函数和宏定义的区别是什么?
原文地址:http://www.programmerinterview.com/index.php/c-cplusplus/inline-vs-macro/这个问题在苹果公司(Apple)和直觉(Intuit)公司面试时都有问到。内联函数和宏定义的主要区别是不同的处理方式。内联函数由编译器处理,而宏定义则通过C++预处理器展开。这个区别也产生了其他的不同,通过例子可以很好的说明。C++翻译 2013-03-16 09:13:15 · 1290 阅读 · 0 评论 -
如何在ubuntu上安装gcc 4.7
来源:http://askubuntu.com/questions/113291/how-do-i-install-gcc-4-7可以用PPA来安装ggc 4.7。该工具只在12.04版本可用。在shell中执行下面的命令:sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo a翻译 2013-03-03 23:17:58 · 1954 阅读 · 0 评论 -
C++Primer第五版【笔记】——第九章——顺序容器
1. 顺序容器概述表一中的顺序容器,提供了对元素快速的顺序访问。但是其他操作的开销则不同:添加或删除元素的开销进行非顺序访问的开销表一:顺序容器类型 vector 可变长度数组。支持快速随机访问。在非尾部插入或删除元素速度很慢 deque 双端队列。支持快速随机访问。快速在头或尾的插入和删除 list 双向原创 2013-06-28 10:42:27 · 3029 阅读 · 2 评论 -
C++Primer第五版【笔记】——第八章 IO库
1. IO类IO类和IO对象操作的实际上是char数据(字符数据流)。默认情况下IO对象是与用户控制台窗口绑定,即从控制台窗口读数据或写数据。实际上,char数据的来源还可以来自文件,或一个string。此外,C++还支持宽字符(wide-character)的读写。表一:IO库类型和头文件HeaderTypeiostreamistream, w原创 2013-05-21 10:25:13 · 2788 阅读 · 2 评论 -
C++Primer第五版【笔记】——第七章 类
类是数据的抽象和封装。数据抽象是一种将接口和实现分离的设计技术。接口是指用户可以对类使用的操作集。实现包括类的数据成员和接口函数体。封装使得类的使用者不必关注类内部是如何实现的,因为这些是类的设计者需要关注的。1 抽象数据类型定义在类中的函数默认为内联的(inline)。类的成员函数必须在类内部声明,函数定义可以放在类的内部或外部。1.1 this指针每一个类的内部都有一个隐含的t原创 2013-05-18 09:44:54 · 2737 阅读 · 0 评论 -
C++Primer第五版【笔记】——第六章 函数
1 基础1.1 范围和生命期一个名字的范围是指该名字在程序中的作用域,即可见范围。一个对象的生命期是指在程序执行时,对象存在的持续时间。一个全局对象的生命期从程序创建时开始,到程序终止时结束。局部对象的生命期开始于其定义的位置,当程序控制路径越过其所在的作用范围时,生命期结束。加上static声明的局部对象,其初始化发生在程序第一次执行到该对象的定义之前。其生命期在函数调用结束原创 2013-04-18 15:03:32 · 2419 阅读 · 0 评论 -
C++Primer第五版【学习笔记】——auto,decltype【C++11】
1. auto我们经常会需要将表达式的值保存在变量中。要声明变量,我们需要知道表达式的类型。但是要确定表达式的类型,有时候是很困难的。C++11新标准引入了auto类型声明符,使变量的类型由编译器通过表达式的推测来确定。比如:auto avalue = value1 + value2;如果value1和value2为double类型,则avalue为double类型。如果value1和原创 2013-03-23 00:12:56 · 3267 阅读 · 0 评论 -
C++Primer第五版【学习笔记】——第五章 语句
1 简单语句空语句是一个单独的分号;// null statement当需要一个语句,但是逻辑上不需要时,使用空语句。比如在一个for循环中,for(i=0; i语句块由一组语句组成,由大括号包围{ ; // some statements} 当需要一原创 2013-04-09 09:13:19 · 2234 阅读 · 0 评论 -
C++Primer第五版【学习笔记】——第四章 表达式
1. 基础表达式由一个或多个操作数组成,计算时会产生一个值。最简单的表达式是单个变量或字面值(literal)。复杂表达式包含一个或多个操作符。操作符有一元操作符,如:取地址&,解引用* ;有二元操作符,如:相等==,相乘* ;有一个三元操作符,条件判断?: ;函数调用也是操作符,其操作数个数没有限制。计算含有多个操作符的表达式,需要了解操作符的优先级 和结合性 以及操作数的计算顺序。原创 2013-04-06 18:11:06 · 2492 阅读 · 0 评论 -
C++Primer第五版【学习笔记】——第三章 Strings,Vectors,Arrays
1. String类型1.1 定义和初始化有以下几种初始化方法:string s0; //初始化为空串string s1(s0); //s1为s0的一个副本,direct initializationstring s11 = s0; //同上,copy initializationstring s2("Hello");//s2为字符串"Hello",不包含NULL结束符,dire原创 2013-03-28 23:33:03 · 2564 阅读 · 0 评论 -
C++Primer第五版【学习笔记】——第二章 变量和类型
1.算术类型C++标准中规定了每种类型的最小位数或精度,不同的编译器的有不同的实现。表1-1 C++算术类型TypeMeaningMinimum SizeboolbooleanNAcharcharacter8 bitswchar_twide character16 bitschar1原创 2013-03-16 21:58:41 · 2749 阅读 · 0 评论 -
C++primer第五版【学习笔记】——第一章
1.前言一直以来都习惯用C写程序,对C++的了解,虽然在大学本科时期学过最基本的一些类,继承,多态的机制,但是很少真正去编程序。最近拿到第五版的C++primer,里面加入了最新的C++11标准,于是决定开始深入学习C++。2.笔记2.1 main函数在大多数系统上,main函数的返回值是一个状态指示。返回0表示正常程序结束,返回非0值则表示出现错误。int main(){原创 2013-03-01 15:31:11 · 1111 阅读 · 0 评论