自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

革命队伍的螺丝钉

除了代码,没什么特别的

  • 博客(46)
  • 收藏
  • 关注

原创 (10)线性方程组的解

定理3: n元线性方程组Ax=b1.无解的充分必要条件是R(A)2.有唯一姐的充分必要条件是R(A)=R(A,b)=n3.有无限多解的充分必要条件是R(A)=R(A,b)定理4: n元齐次线性方程组 Ax=0有非零解的充分必要条件是R(A)定理5: 线性方程组 Ax=b 有解的充分必要条件是R(A)=R(A,b)定理6: 矩阵方程Ax=B有解的充分必要条件是R(

2016-11-30 19:26:23 1079

原创 (46)类的静态成员

我们通过在成员的声明之前加上关键字static使得其与类关联在一起。和其他成员一样,静态成员可以是public的或private的。静态数据成员的类型可以是常量、引用、指针、类类型等。和其他的成员函数一样,我们既可以在类的内部也可以在类的外部定义静态成员函数。当在类的外部定义静态成员时,不能重复static关键字,该关键字只出现在类内部的声明语句类似于全局变量,静态数据成员

2016-11-29 11:15:21 278

原创 (45)聚合类、字面值常量类

聚合类聚合类使得用户可以直接访问其成员,并且具有特殊的初始化语法形式。当一个类满足如下条件时,我们说它是聚合的:一.所有成员是public的二.没有定义任何构造函数三.没有类内初始值四.没有基类,也没有virtual函数如:struct Data{ int ival; string s;}我们可以提供一个花括号括起来的成员初始值列表,并用它初始

2016-11-29 09:35:33 757 3

原创 (44)类的作用域

每个类都会定义自己的作用域。在类的作用域之外,普通的数据和函数成员只能由对象、引用或者指针使用成员访问运算符来访问。一旦遇到了类名,定义的剩余部分就在类的作用域之内了,这里的剩余部分包括参数列表和函数体。结果就是,我们可以直接使用类的其他成员而无需再次授权了。另一方面,函数的返回类型通常出现在函数名之前。因此当成员函数定义在类的外部时,返回类型中使用的名字都位于类的作用域之

2016-11-28 21:42:03 221

原创 (43)友元

类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数称为它的友元。如果想把一个函数作为它的友元,只需要增加一条friend关键字开始的函数声明语句即可。友元声明只能出现在类定义的内部,但是在类内出现的具体位置不限,而且友元的声明仅仅指定了访问的权限,而非一个通常意义上的函数声明。类之间的友元关系如果一个类指定了友元类,则友元类的成员函数可以访问此类包括非公有成

2016-11-28 20:14:12 265

原创 (42)构造函数

每个类都定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。构造函数的人物是初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。构造函数的名字和类名相同。和其他函数不一样的是,构造函数没有返回类型,除此之外类似于其他的函数,构造函数也有一个(可能为空的)参数列表和一个(可能为空的)函数体。类可以包含多个构造函数,和其

2016-11-28 19:37:36 476

原创 (41)引入this

成员函数可以通过一个名为this的额外的隐式参数来访问调用它的那个对象,当我们调用一个成员函数时,用请求该函数的对象地址初始化this,同时我们可以在成员函数体内部使用this。例如:Student::getID(){return->id;};对于我们来说,this形参是隐式定义的。实际上,任何自定义名为this的参数或变量的行为都是非法的。而且this的目的总是指向“这个”对象,所以

2016-11-28 18:15:14 217

原创 (40)类

类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程(以及设计)技术。类的接口包括用户所能执行的操作,类的实现则包括类的数据成员、负责接口实现的函数以及定义类所需的各种私有函数。封装实现了类的接口和实现的分离。封装后的类隐藏了它的实现细节,也就是是说,类的用户只能使用接口而无法访问实现部分。类要想实现数据抽象和封装,需要首先定义一个抽象数据类型。在抽象数据类型中,

2016-11-27 20:44:00 248

原创 (39)函数指针

函数指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定类型。函数的类型由它的返回类型和形参类型共同决定,与函数名无关。当我们把函数名作为一个值使用时,该函数自动地转换成指针。直接使用指向含税的指针调用该函数,无须以前解引用指针。在指向不同函数类型的指针间不存在转换规则。但是和往常一样,我们可以为函数指针赋给一个nullptr或者值为0的整箱常量表达式表示该指针没有指向任

2016-11-27 14:03:10 295

原创 (38)函数匹配

函数匹配的步骤:第一步是选定本次调用对应的重载函数集,集合中的函数被称为候选函数。候选函数的特征:一.与被调用的函数同名二.其声明在调用点可见第二步是考察本次调用提供的实参,然后从候选函数中选出能被这组实参调用的函数,这些新选出的函数称为可行函数。可行函数的特征:一.其形参数量与本次调用提供的实参数量相等二.每个实参的类型与对应的形参类型相同,或者能转换成形参的

2016-11-26 21:54:30 416

原创 (37)调试帮助

C++程序员有时会用到一种类似于头文件保护的技术,以便有选择地执行调试代码。程序可以包含一些用于调试的代码,但这些代码只在开发程序时使用。当应用程序编写完成准备发布时,要先屏蔽掉调试代码。这种方法用到两种预处理功能:assert和NDEBUG。assert预处理宏assert是一种预处理宏。所谓预处理宏其实是一个预处理变量,它的行为有点类似于内联函数。assert宏使用一个表达

2016-11-26 21:21:45 242

原创 (9)矩阵的秩

2016-11-24 22:20:44 1087

原创 (8)矩阵的初等变换

矩阵的初等变换:行阶梯行矩阵:初等变换与矩阵乘法的关系:

2016-11-24 21:58:15 795

原创 (7)静态链表

静态链表:用数组描述的链表。而且静态链表的表现形式即为结构体数组,结构体变量包括数据域data和游标CUR(我用的是next)data中存放的是储存的元素值。cur中存放的是下一元素的数组下标。我对静态链表的理解就是:静态链表表面上是一个结构体数组,但是逻辑上是两个数组,一个数组首元素的下标是0,它连接的是所有空闲的结点。另一个数组首元素下标是1,它表示的是正在使用的所有结点,静态

2016-11-23 21:47:39 424

原创 (36) 默认实参、内联函数和constexpr函数

默认实参某些函数有这样一种形参,在函数的很多次调用中他们都被赋予一个相同的值,我们把这个反复出现的值称为函数的默认实参,调用含有默认实参的函数时,可以包含该实参,也可以省略该实参。形式如下:typedef string::size_type sz;string screen(sz ht =24,sz wid =80,char backgrnd =' ');默认实参作为形参的初始值出现

2016-11-21 12:09:26 342

原创 (35)函数重载

如果同一作用域内的几个函数名字相同但形参列表不同,我们称之为重载函数,main函数不能重载。对于重载的函数来说,它们应该在形参数量或形参类型上有所不同。不允许两个函数除了返回类型外其他所有的要素相同。重载和const形参一.顶层const不影响传入函数的对象。一个拥有顶层const的形参无法和另一个没有顶层const的形参区分开来二.如果形参是某种类型的指针或引用,

2016-11-20 14:08:14 258

原创 (34)返回类型和return语句

return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。return语句的两种形式: return; return expression;无返回值函数没有返回值的return语句只能用在返回类型是void的函数中。返回void的函数不要求非得有return语句,因为在这类函数的最后一句后面会隐式地执行return.  通常情况下,void函数如果

2016-11-19 22:26:28 908

原创 (33)含有可变形参的函数

为了编写能处理不同数量实参的函数,C++提供了两种主要的方法:一.如果所有的实参类型相同,可以传递一个名为initializer_list的标准库类型二.提供一种特殊的形参类型(即省略符),可以用它传递可变数量的实参。这种功能一般只用于与C函数交互的接口程序initializer_list形参 如果函数的实参数量未知但是全部实参的类型相同,我们可以使用initializer

2016-11-17 22:16:09 321

原创 (32)参数传递

参数传递方式每次调用函数时都会重新创建它的形参,并用传入的实参对形参进行初始化,和其他变量一样,形参的类型决定了形参和实参交互的方式。当形参是引用类型时,我们说它对应的实参被引用传递或者函数被传引用调用。当实参的值被拷贝给形参时,形参和实参是两个相互独立的对象。我们说这样的实参被值传递或者函数被传值调用。一.传值参数  1.函数对形参做的所有操作不会影响实参。  2.当

2016-11-17 21:15:48 301

原创 (31)函数基础

函数函数是一个命名了的代码块,我们通过调用函数执行相应的代码。函数可以有0个或多个参数,而且(通常)会产生一个结果。可以重载函数,也就是说,同一个名字可以对应几个不同的函数。一个典型的函数定义包括以下部分:返回类型、函数名字、由0个或多个形参组成列表以及函数体,形参以逗号隔开位于圆括号内。我们通过调用运算符来执行函数。调用运算符的形式是一对圆括号,它作用于一个表达式,该表达式是函数

2016-11-13 22:37:57 427

原创 (30)try语句块和异常处理

异常是指存在于运行时的反常行为,这些行为超出了函数正常功能的范围。当程序的某部分检测到一个它无法处理的问题时,需要用到异常处理。异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持。在C++语言中,异常处理包括:一.throw表达式,异常检测部分使用throw表达式来表示它遇到了无法处理的问题。我们说throw引发了异常。二.try语句块,异常处理部分使用try语句处理异常。t

2016-11-13 14:02:14 3429

原创 (29)跳转语句

跳转语句中断当前的执行过程,C++语言提供了4种跳转语句:break、continue、got和return.这节主要介绍前三个。break语句break语句负责终止离他们最近的while、do while、for和switch语句,并从这些语句之后的第一条语句开始继续执行。如:int i=1;while(i!=21){  i++;  break;}

2016-11-12 15:56:36 385 1

原创 (28)迭代语句

迭代语句通常称为循环,它重复执行操作直到满足某个条件才停下来。while和for语句在执行循环体之前检查条件,do while语句先执行循环体,然后再检查条件。while语句只要条件为真,while语句就重复的执行循环体,它的语法形式是:while(condition)  statement定义在while条件部分或者while循环体内的变量每次迭代都经历从创建到销毁的

2016-11-11 21:45:36 332

原创 (27)条件语句

C++语言提供了两种按条件执行的语句:一种是if语句,它根据条件决定控制流。另外一种是switch语句,它计算一个整型表达式的值,然后根据这个值从几条执行路径中选择一条。if语句作用:判断一个指定的条件是否为真,根据判断结果决定是否执行另外一条语句。if语句有两中形式:一种含有else分支,另外一种没有。if(condition)statementif else

2016-11-11 19:59:16 351

原创 (26)语句

C++语言中的大多数语句都以分号结束,语句又分为简单语句和复合语句。简单语句一个表达式末尾加上分号变成了表达式语句。表达式语句的作用是执行表达式并丢弃掉求值结果:ival +5; //一条没什么实际用处的表达式语句空语句最简单的是空语句,空语句中只含有一个单独的分号:; //空语句使用空语句时应该加上注释,从而令读这段代码的人知道该语句是有意省略的。因为空语句

2016-11-10 21:34:12 260

原创 (25)类型转换

对象的类型定义了对象能包含的数据和能参与的运算,其中一种运算被大多数类型支持,类型转换就是将对象从一种给定的类型转换为另外一种相关类型。类型所能表示的值的范围决定了转换的过程:一.当我们把一个非布尔类型的算术值赋值赋给布尔类型时,初始值为0则结果为false,否则结果为true二.当我们把一个布尔值赋给非布尔类型时,初始值为false则结果为0,初始值为true则结果为1。三.

2016-11-10 20:55:29 289

原创 (24)位运算符、sizeof运算符

位运算符位运算符作用于整数类型,并把运算对象看成是二进制的集合。位运算符提供检查和设置二进制位的功能,满足左结合律。但是位运算关于符号位如何处理没有明确的规定,改变符号位的值是一种未定义的行为,所以建议仅将位运算符作用于无符号 型。左移运算符(右移运算符(>>)的行为则依赖于其左侧运算对象对象的类型:如果该运算对象是无符号类型,在左侧插入值为0的二进制位,如果

2016-11-09 21:16:33 269

原创 (23)成员访问运算符、条件运算符、逗号运算符

成员访问运算符有两种:一.点运算符:获取类对象的一个成员。如果成员所属的对象是左值,那么结果是左值;反之,如果成员所属的对象是右值,那么结果是右值。二.箭头运算符:作用于一个指针类型的运算对象,结果是一个左值。同时箭头运算符与点运算符有关,表达式ptr->mem等价于(*ptr)->mem:string s1="a string",*p=&s1;auto n = s1.siz

2016-11-07 17:32:11 997

原创 (6)双链表

双链表:每个结点有一个指向前驱的指针域和指向后继的指针域是链表可以进行双向查找,用这种结点结构组成的链表称为双链表。双链表头尾相连构成双向循环链表。双链表的基本操作:1)Length(L) 返回表L的长度,即表中元素个数2)Prior(L,i) 取位置i的前驱元素3)Next(L,i) 取位置i的后继元素4)Locate(L,x) 这是一个函

2016-11-07 11:42:50 367

原创 (22)赋值运算符、递增和递减运算符

赋值运算符:赋值运算符的左侧对象必须是一个可修改的左值。相应的,结果的类型就是左侧运算对象的类型。如果复制运算符的左右两个运算对象类型不同,则右侧运算对象将转换成左侧运算对象的类型。允许使用花括号括起来的初始值列表作为赋值语句的右侧运算对象:k = {1};无论左侧运算对象的类型是什么,初始值列表都可以为空。此时,编译器创建一个值初始化的临时量并将其赋给左侧运算对象。

2016-11-06 20:05:34 429

原创 (21)算术运算符、逻辑和关系运算符

算术运算符:作用于算术类型或者指针类型。一元运算符的优先级最高,接下来是乘除,最低是加减。除非另做特殊说明,算术运算符都能作用于任意算术类型以及任意能转换为算术类型的类型。算术运算符的运算对象和求值结果都是右值。一元运算符作用于指针或者算术值时,返回运算对象值的一个(提升后的)副本。算术表达式有可能产生未定义的结果:一.数学性质本身:除数不能0二.计算机的特

2016-11-06 19:16:49 1478

原创 (7)分块矩阵

分块矩阵的运算:分块矩阵的加减运算:分块矩阵的数乘和转置:分块矩阵的乘法运算:分块对角矩阵:分块对角矩阵的性质:

2016-11-06 18:03:52 6975

原创 (6)逆矩阵

由n阶方阵A的元素所构成的行列式(各元素位置不变)成为方阵A的行列式记作:|A|行列式|A|的各个元素的代数余子式Aij所构成的矩阵成为矩阵A的伴随矩阵。A的逆矩阵=A的伴随矩阵/|A|逆矩阵的性质:

2016-11-06 15:15:18 614

原创 (5)矩阵的运算

矩阵的加法:矩阵的数乘预算:运算律:矩阵的乘法:注意:转置矩阵:

2016-11-06 14:21:37 389

原创 (4)矩阵

矩阵的定义:特殊矩阵:不同型的零矩阵是不同的!

2016-11-06 13:42:21 250

原创 (20)表达式

表达式有一个或多个运算对象组成,对表达式求值将得到一个结果,字面值和变量是最简单的表达式,其结果就是字面值和变量的值。把一个运算符和一个或多个运算对象组合起来可以生成较复杂的表达式。C++定义了一元运算符和二元运算符。作用于一个运算对象的运算符是一元运算符,如&,*作用于二个运算对象的运算符是二元运算符,如+,-既能作为一元运算符也能作为二元运算符,如*作用于三个运算对

2016-11-06 12:48:16 285

原创 (19)多维数组

严格来说,C++语言不存在多维数组,通常所说的多维数组其实是数组的数组。当一个数组的元素仍然是数组时,通常使用两个维度来定义它:一个维度表示数组本身大小,一个维度表示其元素(也是数组)大小。对于二维数组来说,常把第一个维度称作行,第二个维度称作列。多维数组的初始化:允许使用花括号括起来的一组值初始化多维数组:int a[2][2]={{1,2}{3,4}};其中内层

2016-11-05 22:39:07 260

原创 (18)C风格字符串与旧代码的接口

字符串字面值是一种通用结构的实例,这种结构即是C++由C继承而来的C风格字符串。C风格字符串不是一种类型,而是为了表达和使用字符串而形成的一种约定俗成的写法。按此习惯书写的字符串存放在字符数组中并以空字符结束。一般利用指针来操作这些字符串。C语言标准库提供的一组函数,这些函数可用于操作C风格字符串,它们定义在cstring头文件中,cstring是C语言头文件string.的C++版本。

2016-11-05 16:12:09 389

原创 (5)循环链表

将链表通过指针域首尾相接,即链表尾结点的指针域指向头结点形成的链表叫做循环链表。由单链表构成叫做单循环链表。单循环链表在任意一结点都可以访问其他节点,用指针是否为null判断是否到达链表尾。一般使用尾结点的指针来表示,提高效率。代码:

2016-11-03 22:17:33 432

原创 (17)指针和数组

在C++语言中,指针和数组有非常紧密的联系,使用数组的时候编译器一般会把它转换成指针。对数组的元素使用取地址符就能得到指向该元素的指针。数组有一个特性:在多数用到数组名字的地方,编译器都会自动的将其替换为一个指向数组首元素的指针。当使用数组作为一个auto变量的初始值时,推断得到的类型是指针而非数组。当使用decltype关键字时上述转换不会发生,decltype返回的类型仍然是数

2016-11-03 16:34:16 370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除