
c++编程思想
eyetired
这个作者很懒,什么都没留下…
展开
-
C++编程思想 第1卷 第2章 文件的读写 把文件拷贝成单独的string对象
string具有动态特性,不必担心string的内存分配,只管添加新内容进去就行了,string会自动扩展以保持新的输入。 把整个文件都输入到一个字符串中,好处之一就是,string类有许多函数可用来对字符串进行查找和操作,使用它们可以把文件当成单个的字符串来处理。但也有一定的局限性。把一个文件作为许多行的集合而不是一大段文本来处理,通常是很方便的。例如,如果想对每一行都加上行号,把每行作为...原创 2018-06-03 09:42:15 · 136 阅读 · 0 评论 -
C++编程思想 第1卷 第2章 vector
string对象输入数据而不关心需要多少存储空间。但如果把每一行读入一个string对象,我们就不知道需要多少string--只有读完整个文件后才知道,我们需要某种能够自动扩展的存放,用以包含所需数量的string对象。 有某种容器对象,能容纳所有的各种对象。 vector类是一个模板,可以有效地用于不同的类型。 用模板可以创建任何事物的类。 vector末尾增加一个新元素,用push...原创 2018-06-04 23:06:55 · 151 阅读 · 0 评论 -
C++编程思想 第1卷 第2章 vector 分隔单词
iostream可以使用操作符 >>可以把输入分解从空格分隔的单词 而不是一行//: C02:GetWords.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyrigh...原创 2018-06-04 23:11:03 · 135 阅读 · 0 评论 -
C++编程思想 第1卷 第2章 vector 分隔整形
使用可带任何类型的vector是容易的事情创建可以存放不同类型的vector,只需要把类型当作模板参数就可以尖括号的参数是模板参数//: C02:Intvector.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyrig...原创 2018-06-04 23:19:13 · 123 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 函数的返回值
C++函数原型必须指名返回值类型,返回值类型放在函数名前面没有返回值就用void关键字要有return才有返回值return就是函数调用完执行如果return有参数,那个参数就是返回值可以有多个return 语句函数声明不是必须的,在main使用函数之前定义就可以//: C03:Return.cpp// From Thinking in C++, 2nd Edition// Available...原创 2018-06-04 23:30:37 · 124 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 if-else语句
if-else 表达式的值为真或假执行的语句是分号结束的简单句或者 大括号里的句子语句可以是if语句,嵌套if控制缩进流语句,方便知道if-else起点终点//: C03:Ifthen.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000...原创 2018-06-04 23:41:20 · 169 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 while语句
循环控制语句,重复执行到控制表达式的计数值为假一开始就对表达式进行计算在重复执行之前再次计算。while可以更复杂//: C03:Guess.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in...原创 2018-06-04 23:47:01 · 95 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 do while语句
do-while语句和while语句区别, do-while不管条件真假会执行一次,while条件为假就可以一次都不执行cin可以初始化变量//: C03:Guess2.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyr...原创 2018-06-04 23:53:02 · 111 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 for语句
第一次循环,for的变量初始化测试条件决定是否执行循环每一次循环结束循环变量会变化//: C03:Charlist.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyright.tx...原创 2018-06-05 06:47:19 · 111 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 break和continue语句
break退出循环continue停止当前的循环,还是开始新一轮的循环while(true)表示一直循环//: C03:Menu.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyr...原创 2018-06-05 07:12:33 · 160 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 break和continue语句
switch根据整形表达式来选择要执行的语句选择器 selector 是一个产生整数值的表达式如果选择器的值和 其中一个语句的整数值匹配的话就执行。都不匹配,执行switch语句break语句可以跳转到switch语句体的结束处如果没有break,会按顺序执行后面的语句switch语句可以实现多路选择,但需要求整数值的选择器。字符串的选择器,switch是不可用的。要使用字符串选择器,用if语句/...原创 2018-06-05 07:28:51 · 141 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 使用和滥用goto
goto是一个糟糕的编程方式少数情况,goto能解决别的方法不能解决的问题多层循环嵌套用break也不行,goto可以退出嵌套的循环//: C03:gotoKeyword.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copy...原创 2018-06-05 07:35:34 · 226 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 递归
递归函数内调用自己。递归会一直调用下去,直到内存耗尽。需要结束递归的方法。结束的方法就是套一个if语句在removeHat()中,只要cat值小于‘Z’,就会调用removeHat(),实现递归每次调用removeHat,cat值增加1//: C03:CatsInHats.cpp// From Thinking in C++, 2nd Edition// Available at http:/...原创 2018-06-05 07:42:31 · 213 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 自增和自减
自增和自减运算符改变循环变量控制循环自减运算符是 -- ,意思是 减少一个单位自增运算符是 ++ 意思是 增加一个单位++A 先运算 再使用A++ 先使用 再运算//: C03:AutoIncrement.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce E...原创 2018-06-06 07:33:40 · 113 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 基本内建类型
内建类型能存储最大值和最小值C和C++有4个基本内建数据类型。char用8位存储。Int用16位存储float和double存储浮点数,用IEEE浮点格式float是单精度浮点数double是双精度浮点数//: C03:Basic.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com/...原创 2018-06-07 07:04:02 · 340 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 说明符
说明符用于改变基本内建类型的含义并把他们扩展成一个更大的集合4个说明符:long short signed unsignedlong 和 short都有最大最小值signed unsigned修饰符告诉整数类型和字符的符号位unsigned不保存符号,有一个多余的位可用,比signed数大一倍。不同机器、操作系统、编译器运行程序的结果可能不太。//: C03:Specify.cpp// From...原创 2018-06-07 07:11:22 · 120 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 指针简介
不管什么时候运行一个程序,要装入内存。程序的元素在内存里,都有地址内存8个字节连续存放,但实际空间的大小取决于机器的结构每一个空间都有他的地址和其他空间区分//: C03:YourPets1.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 20...原创 2018-06-07 07:22:50 · 126 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 指针简介 打印元素的地址
C和C++ , & 运算符告诉我们元素的地址。元素前加 & 就可以知道地址。//: C03:YourPets2.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyri...原创 2018-06-07 07:36:19 · 173 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 修改外部对象 按值传递
函数传递参数时,函数内部参数会形成一个拷贝,这称为按值传递//: C03:PassByValue.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyright.txt#includ...原创 2018-06-07 07:48:28 · 133 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 修改外部变量 指针传递
函数内的变量要改变函数外的变量,靠指针。指针可以把函数外变量的地址传进来,函数就可以修改外部变量的地址//: C03:PassAddress.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in...原创 2018-06-07 08:06:56 · 202 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 C++引用
C++除了指针给函数传递地址,还有引用传递 pass-by-reference带引用的函数调用比带指针的函数调用更清晰//: C03:PassReference.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright...原创 2018-06-07 08:21:20 · 132 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 用指针和引用作为修饰符
基本数据类型,修饰符,指针和引用,产生三倍的结合当传递对象,指针和引用也能工作//: C03:AllDefinitions.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyrigh...原创 2018-06-07 08:25:40 · 102 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 用指针和引用作为修饰符 空类型指针
void和指针可以一起工作。任何类型的地址都可以引用那个空类型指针。如果是int* , 只能int型的变量间接引用//: C03:VoidPointer.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright not...原创 2018-06-07 08:34:15 · 118 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 用指针和引用作为修饰符 空类型指针转换正确类型
间接引用void*,会对手关于类型的信息使用前要转换正确的类型//: C03:CastFromVoidPointer.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyright.t...原创 2018-06-07 08:47:05 · 153 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 作用域
作用域是变量的有效范围,哪里创建,哪里销毁作用域从它的定义点开始,到定义最近的开括号配对的必括号为止。//: C03:Scope.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyr...原创 2018-06-10 22:49:14 · 142 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 定义实时变量
变量要使用前定义C要在作用域开始处定义,编译器在创建一个块时,能给所有变量分配空间C代码进入作用域开头,所有变量都定义了写新变量又要回到作用域的开头,导致混乱,因为上下文无关C++允许在作用域任何地方定义,使用之前定义就好。定义变量时同时初始化避免错误,让代码编写更容易,减少作用域跳转带来的问题上下文定义变量,代码更容易理解//: C03:OnTheFly.cpp// From Thinking...原创 2018-06-12 21:50:53 · 169 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 指定存储空间分配 全局变量
全局变量在所有函数体外定义的,程序的所有部分都可以使用。全局变量不受作用域的影响。如果在一个文件中使用extern来声明另外一个文件中存在的全局变量,那么这个文件可以使用这个数据//: C03:Global.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce ...原创 2018-06-14 21:11:57 · 133 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 指定存储空间分配 静态变量
局部变量在作用域结束时会消失。如果想让局部变量在整个生命期里存在,需要定义为静态的 static,并给一个初始值static变量的有点是在函数范围之外是不可用的 C03:Static.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000/...原创 2018-06-16 16:27:31 · 108 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 指定存储空间分配 静态变量 文件作用域
静态变量或函数名是局部于文件的。编译和连接两个文件会出错//: C03:FileStatic.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyright.txt// File s...原创 2018-06-16 16:32:27 · 135 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 创建复合类型 数组 指针和数组 指针算术 struct数组
int* 改变了4个字节double* 改变了8个字节并非总是这样,取决与int 和 double浮点数的大小编译器总是能算出指针的正确值指针能指向下一个元素struct数组也是这样,指针能指向下一个元素 //: C03:PointerIncrement2.cpp// From Thinking in C++, 2nd Edition// Available at http://www.Bru...原创 2018-06-23 12:28:00 · 134 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 创建复合类型 数组 指针和数组 指针算术 运算符
指针运算可以使用运算符 -- + - + - 使用有限制+ - 不能两个指针相加- 表示两个指针相隔的元素个数一个指针可以加上或减去一个整数//: C03:PointerArithmetic.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 20...原创 2018-06-23 12:51:44 · 165 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 调试技巧 调试标记 运行期调试标记
执行期间打开或关闭调试标记会方便可以使用命令行在启动程序时设置它们如果只是为了插入调试代码重新编译一次会乏味为自动打开和关闭调试代码,建立一个bool标记//: C03:DynamicDebugFlags.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce E...原创 2018-06-23 13:14:27 · 184 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 调试技巧 把变量和表达式转换成字符串
写调试代码时,写包含变量名和变量的字符串数组的打印表达式是繁琐的幸运的是,标准C有字符串化运算符 #预处理器宏中的参数前面使用一个#预处理器会把这个参数转换为一个字符数组转换成字符数组与没有插入标点符号的若干个字符数组结合而连接成一个单独的字符数组宏创建一种速记方式打印出字符串化的表达式//: C03:StringizingExpressions.cpp// From Thinking in C...原创 2018-06-23 19:01:52 · 253 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 调试技巧 C语言assert()宏
标准头文件<cassert>中,assert()是一个方便的调试宏当使用assert()时,给它一个参数,一个断言为真的表达式如果断言不为真,会发出错误信息错误信息是断言是什么程序失败后,会终止//: C03:Assert.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com//...原创 2018-06-23 19:12:08 · 123 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 函数地址 复杂的声明和定义
一旦知道C和C++ 语法如何工作,就能创建许多复杂的条目//: C03:ComplicatedDefinitions.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyright.t...原创 2018-06-23 19:42:11 · 135 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 函数地址 使用函数指针
一旦定义函数指针,使用前给它赋值一个函数地址像数组 arr[10],如果不带方括号,arr是地址func()地址是没有参数列表 func函数产生的&func() 也可表示函数 的地址为了调用函数,可间接引用指针声明相同的方法地址相同C和C++ 力图让引用看上去与使用引用的方法一样//: C03:PointerToFunction.cpp// From Thinking in C++, ...原创 2018-06-23 19:51:09 · 257 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 函数地址 指向函数的指针数组
更为有趣的结构是函数指针使用一个函数,只有用下标就可使用使用下标,就使用指针这种方式支持表格式驱动码 table-driven code表格式驱动码根据状态变量来选择被执行的函数表格式驱动码不用条件语句和case语句表格式驱动码经常要从表添加或删除函数表格式驱动码想动态地创建或改变表预处理宏创建 哑函数,然后使用自动聚合初始化功能自动聚合初始化功能指向函数的指针数组//: C03:Function...原创 2018-06-23 20:05:09 · 202 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 指定存储空间分配 外部变量
extern关键字告诉编译器存在一个变量和函数,即使编译器在当前文件没有看到它。这个变量或函数可能在另一个文件中或者在当前文件后面定义//: C03:Forward.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyrig...原创 2018-06-16 16:40:22 · 131 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 运算符及其使用 数学运算符
基本的数学运算符 + - / * %整数相除会截取整数部分浮点数不能使用取模运算符C和C++可以用简化的符号同时执行操作和赋值//: C03:Mathops.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright n...原创 2018-06-16 16:45:13 · 145 阅读 · 0 评论 -
C++编程思想 第1卷 第3章 运算符及其使用 逻辑运算符
逻辑 与&& 或|| 依据逻辑关系产生true,falseC和C++中非零值为true,零为falsebool值 1表示true, 0表示false//: C03:Boolean.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel ...原创 2018-06-16 16:56:57 · 141 阅读 · 0 评论