C++
文章平均质量分 64
程国华
这个作者很懒,什么都没留下…
展开
-
《C++ primer》英文第五版阅读笔记(九)——string(字符串)类型
Chapter3,Section3.2——Library string Type类库中的string类型string是一个含有许多字符的变长序列。要想使用string类型,必须要包含string的头文件。它被定义在std命名空间里面。现在我们只介绍string最常用的操作,一些其它的操作以后会介绍。#include using std::string;新标准除了原创 2015-11-03 14:10:54 · 465 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十八)——成员运算符和条件运算符
成员运算符和条件运算符原创 2015-11-24 20:56:04 · 414 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(二十三)——跳转语句
跳转语句跳转语句能够打断执行的顺序。C++提供了四种跳转:break,continue,goto,和return。一、break语句1.break语句终止了把它包含其中的离它距离最近的while,do while,for或者switch语句。在被终止的语句后面程序会 重新开始执行。2.break语句只能出现在迭代语句或者switch语句中(包括内嵌在这种循环中的语句或块原创 2015-11-28 21:18:35 · 612 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(二十四)——try控制块和异常处理
try控制块和异常处理1.异常就是运行时的异常现象,比如数据库连接失效或者遇到了不期望的输入——导致从程序的正常功能中离开。2.当在程序中发现了一个程序本身无法解决的问题并且由于这个问题程序无法继续运行下去时就要用到”异常处理“。 在这种情况下,检测部分就要发送出错了而无法继续执行的信号。此外,检测部分需要在不知道程序的那一部分会 解决这个异常的情况下去发送问题原创 2015-11-29 09:41:08 · 439 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十五)——逻辑和算术运算符
Chapter4,Section4.3——Logical and Relational Operators逻辑和算术运算符1.关系运算符的操作数类型是算术类型的或者指针类型的。2.逻辑运算符的操作数类型是任意可以转换为布尔类型的类型。3.这两个运算符返回的都是布尔类型。4.算术类型或布尔类型的操作数,值为0时是false,其它的值都是true。这两个运算符的操作数都是右原创 2015-11-21 22:13:16 · 474 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十七)——自增和自减运算符
Chapter4,Section4.5——Increment and Decrement Operators自增++和自减--运算符1.当在迭代器上使用自增自减运算符的时候很方便。2.自增和自减运算符有两种表示方式:前缀形式和后缀形式。前缀形式运算符对它的操作数进行自增或自减操作,并将改变后的值作为它的结果值;后缀形式运算符也对它的操作数进行了自增或自减操作,但是把一个原来操作原创 2015-11-24 20:09:34 · 859 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十九)——位运算符,sizeof运算符和逗号运算符
The Bitwise Operators位运算符1.位运算符的操作数是可以是整型的,并且位操作符吧它当做许多“位”的集合。2.位操作符的操作数也可以是名为bitset的库类型,这个类型代表了一个灵活可变的位的集合。3.通常如果操作数是“小整型”,它的值将会被提升。4.操作数可以是有符号的,也可以是无符号的。如果操作数是有符号的并且它的值是负的,那么在位操作中的”符号位“处理是机器原创 2015-11-25 21:35:44 · 412 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(二十)——类型转换
Type Conversions——类型转换1.C++里面有许多相互关联的类型。当在两个类型之间有类型转换时,它们就是相互关联的。2.通常C++会自动地进行隐式转换,而不需要让编程者知道。3.在算术类型之间的隐式转换通常都会保护精度,以免丢失精度。例如:一个整型和一个浮点型相加,整型会转换为浮点类型——double,相加的结果也是double类型。4.发生隐式转换的几种情形原创 2015-11-25 21:45:30 · 344 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(二十一)——简单语句,语句范围和条件语句
Chapter5——Statement 语句语句是按顺序执行的。除了最简单的程序以外,顺序地执行是不够的。因此,C++中也定义了允许更加复杂的执行路径的控制流语句集合。一、简单语句在原创 2015-11-28 16:41:54 · 453 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(二十二)——循环语句
循环语句C++中的循环语句有while,for,do...while。一、while语句while语句只要在条件为真的情况下,就一直循环执行目标语句。语法:while(condition)statement;1.condition不能为空。2.condition条件可以是一个表达式或者一个初始化的变量声明。通常,条件本身或者循环体必须要能够改变这个表达式原创 2015-11-28 20:36:55 · 740 阅读 · 0 评论 -
LeetCode第二天
今天做的题目是 21. Merge Two Sorted Lists。题目要求是合并两个有序链表。我的解法是对于两个给定的链表,将第二个链表插入到第一个链表中。代码如下:class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* q) { ListNode* p = l1 ;原创 2017-03-04 17:21:06 · 297 阅读 · 0 评论 -
LeetCode第三天
今天做的题目如下:一、27. Remove Element题目的意思是从一个数组中移除给定的元素,并返回最后数组中元素的个数。我的解法是使用vector中的erase函数来实现,代码如下:class Solution {public: int removeElement(vector& nums, int val) { for(int i=0; i<n原创 2017-03-05 23:49:11 · 328 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十六)——赋值运算符
Chapter4,Section4.4——Assignment Operators赋值运算符1.赋值运算符的左操作数必须是一个可以改变的左值。2.literals都是右值。3.算术表达式都是右值。4.在新标准下,我们能够在右边使用大括号初始化列表。5.如果左操作数是内置类型,初始化列表里面最多只能有一个值,并且不需进行类型转换(左右类型要一致)。6.对于类类型,原创 2015-11-23 22:02:51 · 457 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十四)——算术运算符
Chapter 4,Section4.2——Arithmetic Operators算术运算符运算符:一元:+加 -减 用途:+ expr、- expr *乘 /除 %求余 用途:expr *(/)(%) expr 二元: +加 -减 用途:expr +(-) expr同级优先左结合,优先级从上到下递减。高优先级的运算符比低原创 2015-11-20 21:40:48 · 435 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(二十五)——函数基本知识
Chapter6.1——Function Basics 函数基本知识函数是一个有名字的代码块。通过函数调用来执行函数内的代码。一个函数可能有0个或多个参数,但是只有一个返回值。函数可以进行重载,也就意味着同一个函数名可能对应多个函数。一个函数包含四个部分:(1)函数名。(2)参数。写在一对小括号里,有多个时要用逗号隔开。(3)返回值。(4)函数体。对应函数具体执原创 2015-12-13 19:15:25 · 492 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十)——vector类型
Chapter2.Section3.3——library vector Typevector类型vector是许多对象的集合,这些对象有着相同的类型。通常把vector当成一个容器,因为它包含了许多对象。要使用vector,必须要包含合适的头文件:#include using std::vector;vector是一个类模板。C++有类模板和函数模板原创 2015-11-06 14:11:54 · 494 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十一)——Iterators
Chapter3,Section3.4原创 2015-11-07 20:43:32 · 436 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十二)——数组
Chapter3,Section3.5 Arrays数组数组是一种和库类型vector类似的数据结构。但是具有不同的性能和灵活性。每个数组只能存储一种类型的对象,这些对象都是未命名的,我们可以通过位置来访问这些对象。数组有固定的大小,我们不能给一个数组添加元素。由于数组有固定的大小,它们有时具有很好的性能,但是灵活性可能不是很好。如果不确定具体需要多少个元素时,原创 2015-11-08 18:38:19 · 468 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(十三)——表达式基本知识
Chapter4,Section4.1——Fundamentals基本原理对于如何计算表达式的值有许多基本的概念,在这里先简短进行介绍,后面会进行详细的介绍。(一)基本概念操作符有一元的,二元的,还有三元的。一元的操作符只有一个操作数(例如取地址符&,解引用符*等)。二元的操作符有两个操作数(例如等于符号==,乘法符号*等)。三元的操作符有三个操作数和一原创 2015-11-18 21:52:07 · 384 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(四)——复合类型
最近在读《C++primer》英文第五版,将一些重要内容记了了下来,有的地方可能理解的不到位,希望大家可以给予指正!复合类型复合类型是根据其它类型定义出来的类型。C++包含许多的复合类型,其中有“引用”和“指针”。(一)引用新标准中定义了一种引用“右值引用”,这些引用主要是使用内部类。从技术上讲,我们所说的引用都是”左值引用“。一个引用为一个对象定义了一种可原创 2015-10-31 20:24:39 · 481 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(七)——定义自己的数据类型
Chapter2,Section2.6——Defining Our Own Data Structures定义自己的数据类型在C++里面通过定义类class来定义自己的数据结构。我们可以用如下方式来定义自己的数据结构:struct Sales_data {std::string bookNo;unsigned units_sold = 0;double re原创 2015-11-02 10:36:09 · 422 阅读 · 0 评论 -
《C++ primer》英文第五版C++笔记(二)——主要的内置类型
最近在读《C++ primer》英文版,把笔记写在这了,如果有理解的不对的地方,希望大家给予指正!算术类型类型决定了程序中的数据和可以进行的操作。C++定义了算术类型和一个特殊的void(空)类型。算术类型有整型,字符类型,布尔类型,浮点类型。空类型常用在函数没有返回值时。下表中列出了标准中能保证的最小大小: C++ 算术类型类型原创 2015-10-29 20:18:06 · 459 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(六)——类型处理
类型处理(一)类型别名类型别名是另一个类型名字的同义词。,它能简化复杂的类型的定义,使这些类型使用起来更容易。类型别名也让我们知道了这个类型是干什么的。定义:(1)使用typedef。例:typedef double wages; typedef wages base,*p;//base是double类型,pdouble*类型。typedef是声明中基类型的一部分。包含原创 2015-11-01 21:21:53 · 389 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(五)——const
const 限定词被const修饰的变量的值不能被改变。被const修饰的变量必须在定义时进行初始化。const要放在类型名前面。初始化const对象能够做大多数nonconst对象可以进行的操作,只要不改变const对象的值。例如:我们可以在一个算数表达式中像普通对象那样使用const对象,也可以像普通对象那样获得const对象的bool值。在所有的操原创 2015-10-31 21:15:04 · 472 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(三)——变量
变量定义:类型名 变量名1,变量名2,变量名3,......;变量在定义时可以赋初值,也可以不赋初值。变量初始化和赋值是不同的。初始化是在变量被创建给变量指定一个值时,赋值是把变量当前值用一个新的值来代替。C++提供了多种初始化变量的方法,例如我们可以用下面四种方法中的任意一种初始化变量u。(1)int u = 0 ;(2)int u = {0} ;(3)i原创 2015-10-30 14:14:48 · 457 阅读 · 0 评论 -
《C++ primer》英文第五版阅读笔记(八)——声明命名空间
Chapter3,Section3.1——Namespace using Declarations声明命名空间之前我们使用的输入输出比如std::cout,std::cin等都是出自命名空间std,而一直在前面加上std::是笨重的。现在有一种简单的方法可以不必都在前面加上std::,这就是进行命名空间的声明。格式如下:using namespace::name;例如:us原创 2015-11-03 10:47:01 · 362 阅读 · 0 评论 -
数据结构-排序算法
设有n个记录R[1]~R[n]。一、插入排序1. 直接插入排序 直接插入排序是指将R[i]~R[n]插入到已经有序的R[1]~R[i-1]序列中。R[0]是一个哨兵,起到作为边界条件并作为暂存单元的作用。 实际上,一切为简化边界条件而引入的附加节点(元素)均可称为哨兵。例如单链表中的头结点。 对于有n个记录的集合,要进行n-1趟排序。 其原创 2017-05-11 17:17:56 · 665 阅读 · 0 评论