自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (1)
  • 收藏
  • 关注

转载 什么是辛普森悖论?

以一种方式查看数据可以讲述一个故事,但是有时以另一种方式查看数据可以讲述相反的故事。了解这一悖论及其发生的原因至关重要,并且可以使用新工具来自动检测数据集中的这一棘手问题。当我们想研究数据中的关系时,我们可以绘制,交叉制表或对该数据建模。当我们这样做时,我们可能会遇到这样的情况:从单个数据集的两个不同视图中看到的关系导致我们得出相反的结论。这些都是辛普森悖论的案例。找到这些案例可以帮助我们更好地理解我们的数据并发现有趣的关系。本文提供了这些情况发生的位置的一些示例,讨论了它们如何发生以及为什么发生,

2023-02-27 23:03:13 237

原创 6.5 特殊用途语言特性

将介绍三种函数相关的语言特性:默认实参,内敛函数,constexpr函数6.5.1 默认实参某些函数有这样一种形参,在函数的很多次调用中,都被赋予相同值,重复出现的值称为函数的 默认实参(default argument)。调用有默认实参的函数,可以省略实参typedef string::size_type sz; string screen(sz ht = 24, sz wid =80,char backgrnd = '');一旦某个形参被赋予了默认值,它后面的形参...

2022-05-05 11:56:25 92

原创 6.4 函数重载

如果同一作用域的几个函数名字相同但形参列表不同,我们称之为重载(overloaded)函数编译器会根据传递的实参类型推断想的是哪个函数Note:main函数不能重载定义重载函数Record lookup(const Account&); // 根据Account查找Record lookup(const Phone&);Record lookup(const Name&);Account account;Phone phone;Re...

2022-05-05 11:55:48 102

原创 6.3 返回类型和return语句

return 有两种形式return;return expression;6.3.1 无返回值函数void类型函数不用return,它会隐式执行return。warning:含有return语句的循环后面应该有一条return语句,如果没有那么程序就是错误的。值是如何被返回的返回一个值的方式和初始化一个变量或形参的方式完全一样:返回的值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。如果函数返回引用(函数前面是引用不是return是引用),...

2022-04-19 13:32:17 1097

原创 6.2参数传递

每次调用函数时都会重新创建它的形参Note:形参初始化的机理和变量初始化一样当形参是引用类型时,它对应的实参被引用传递(passed by reference),引用就是对应实参的别名当实参的值被拷贝给形参时,形参和实参时两个相互独立的对象。我们说这样的实参被值传递(passed by value)6.2.1传值参数指针形参void reset(int *ip){ *ip = 0;//改变指针ip所指对象的值 ip = 0; //只改变了i...

2022-04-19 13:31:09 475

原创 6.1 函数基础

一个典型函数包括:返回类型,函数名字,0或多个形参组成的列表以及函数体调用运算符 ()编写函数调用函数函数调用完成两项任务:一是用实参初始化函数对应的形参,二是将控制权转移给被调用函数此时,主调函数的执行被中断,被调函数开始执行return也完成两项:一是返回return语句中的值,二是将控制权从被调函数转移回主调函数形参和实参实参是形参的初始值,形参一定会被初始化(不能将const char*转换成int)函数的形参列表隐式地定义空形参列表...

2022-04-19 13:30:26 79

原创 5.6 try语句块和异常处理

异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持。C++语言中,异常处理包括:throw表达式,异常检测部分使用throw表达式来表示它遇到了无法处理的问题。我们说throw引发(rise)了异常 try语句块,异常处理部分使用try语句块处理异常。 try语句块以关键字try开始,并以一或多个catch子句结束。try语句块中代码抛出的异常通常会被某个catch子句处理。因为catch子句‘处理’异常,所以它们也被称作异常代码处理。 一套异常类,用于在throw表达式和相关的c...

2022-04-17 14:17:23 245

原创 5.5 跳转语句

C++提供了4种跳转语句:break,contiinue,goto,return5.5.1 break语句break语句负责终止离他最近的 while , do while , for 或 switch 语句,并从这些语句之后的第一条语句开始继续执行5.5.2 continue语句continue语句终止最近的循环中的当前迭代并立即开始下一次迭代。continue语句只能出现在for,while, do while循环的内部5.5.3 goto语句goto语句的作...

2022-04-17 14:16:46 50

原创 5.4迭代语句

迭代语句通常称为循环5.4.1while语句Note:定义在while条件部分或者while循环体内的变量每次迭代都经历从创建到销毁的过程使用while循环5.4.2 传统的for语句 for (init-statement;condition;expression)Statement传统for循环的执行流程1.循环开始时,首先执行一次init-statement2.接下来判断condition3.如果条件为真执行循环体4.执行express...

2022-04-17 14:16:18 99

原创 5.3条件语句

5.3.1 if语句if语句使用if else 语句嵌套if语句许多编译器和开发环境都提供一种辅助工具,它可以自动地缩进代码以匹配其语法结构。善用此类工具益处多多悬垂elseelse和哪个if匹配这个问题称为 悬垂else(dangling else)]C++规定else和最近的尚未匹配的if匹配用花括号控制执行路径5.3.2 switch 语句case关键字一起被称为case标签。case标签必须是整型常量表达式。default也是一种特殊的case...

2022-04-17 14:15:47 578

原创 5.1 简单语句

一个表达式加上分号就变成 表达式语句(expression statement)表达式语句是执行表达式丢弃掉求值结果ival + 5; //没用的表达式语句cout << ival; //有用的表达式语句空语句最简单的语句是空语句(null statement),只有一个单独的分号; //空语句语法上需要但是逻辑上不需要的时候用空语句while(cin >> s); //空语句使用空语句时应该加上注释,从而令读这段代...

2022-04-17 14:15:04 55

原创 4.11 类型转换

如果两种类型可以相互转换(conversion),那么他们是关联的如int ival = 3.541+3;//编译器可能会警告运算损失了精度会将类型转换后再执行,称为 隐式转换(implicit conversion)算数类型的隐式转换会尽可能避免失去精度,如上述的例子 3会被转换成double,得到的结果是double并把double赋给int何时发生隐式类型转换大多数表达式中,比int类型小的整型值首先提升为较大的整数类型 在条件中,非布尔值转换成布尔类型 在...

2022-04-16 13:51:48 504

原创 4.10 逗号运算符

逗号运算符含有两个运算对象,按照从左向右的顺序依次求值首先对左侧的表达式求值,然后把求值结果丢掉。逗号运算符真正的结果是右侧表达式的值。如果右侧运算对象是左值,那么最终的求值结果也是左值。用在for循环中for(vector<int>::size_type ix =0; ix != ivec.size(); ++ix,--cnt)...

2022-04-16 13:51:10 178

原创 4.9 sizeof运算符

sizeof运算符返回一条表达式或一个类型名字所占字节数。sizeof运算符满足 右结合律所得值是一个size_t类型的常量表达式运算符的运算对象有两种形式sizeof (type)sizeof expr第二种形式中sizeof返回的是表达式结果类型的大小,sizeof并不实际运算其运算对象的值Sales_data data, *p;sizeof(Sales_data); //储存Sales_data类型对象所占的空间大小sizeof data...

2022-04-16 13:50:33 225

原创 4.8位运算符

位运算符作用于整数类型的运算对象,并把运算对象看成是二进制的集合。位运算符提供检查和设置二进制位的功能bitsit后讲位运算符(左结合律) 运算符 功能 用法 ~ 位求反 ~expr << 左移 Expr1 <<Expr2 >> ...

2022-04-16 13:49:49 116

原创 4.6 成员访问运算符,4.7条件运算符

点运算符和箭头运算符都可以访问成员ptr->men等价于 (*ptr).menstring s1 = "A string", *p = &s1;auto n = s1.size();n = (*p).size();n -> size();解引用优先度低于点运算符 所以要加括号条件运算符 (?:)string finalgrade = (grade<60)? "Fail" : "Pass";嵌套条件运算符...

2022-04-16 13:49:16 179

原创 4.4 赋值运算符,4.5 递增和递减运算符

赋值运算符的左侧运算对象必须是一个可修改的左值如果左侧是内置类型,初始值列表最多只能包含一个值,转换后空间不大于目标空间无论运算对象类型是什么,初始值列表都可以为空赋值运算满足右结合律int ival,jval;ival = jval = 0;//正确:都被赋值为0Int ival, *pval;Ival = pval = 0;//错误: 0赋给pval,pval是指针不能赋给ival赋值运算优先级较低Note:因为赋值运算符的优先级低于关系运...

2022-04-16 13:47:57 107

原创 4.2算术运算符,4.3逻辑和关系运算符

提示:溢出和其他算数运算一场算数表达式有可能产生未定义的结果。一部分原因时数学性质本身:例如除数是0的情况另一部分源于计算机的特性:例如溢出,计算结果超出该类型所能表示的范围和其他未定义一样,溢出不可预知%参与对象必须是整数型C++11 规定全部向下取整除了-m导致溢出的情况(-m)/n 和 m/(-n) 都等于 -(m/n) m%(-n)等于 m%n(-m)%n等于 -(m%n)逻辑与和逻辑或运算符逻辑或和与运算符,...

2022-04-15 11:16:11 80

原创 4.1基础

4.1.1 基本概念c++定义了作用于一个对象一元运算对象一元运算符(取地址符,解引用符)作用于两个对象二元运算对象二元运算符(==,乘法)作用于三个对象....函数调用特殊,它对运算对象的数量没有限制组合运算符和运算对象运算对象转换重载运算符运算符作用于类类型的运算对象时,用户可以自定义其含义称之为 重载运算符(overloaded operator)IO库的 >> 和 << ,迭代器使用的运算都是重载的运算符左值和右值...

2022-04-15 11:14:58 344

原创 3.6 多重数组

严格来说C++没有多维数组,多维数组就是数组的数组 int ia[3][4];//大小为3的数组,每个元素是含有4个整数的数组 int arr[10][20][30] ={0}//大小为10的数组,每个元素是大小为20的数组,这些数组的元素是含有为30个整形的数组,所有元素初始化为0对于二维数组来说,常把第一个维度称作行,第二个维度称作列多维数组的初始化 int ia[3][4] = {{0,1,2,3} //第一行的初始值{4,5,6,7}...

2022-04-15 11:13:45 1156

原创 3.5数组

Tip: 不清楚元素的确切个数,请使用vector3.5.1 定义和初始化内置数组数组是一种复合类型unsigned cnt = 42;constexpr unsigned sz = 42;int arr[10] ;//含有十个整数的数组int *parr[sz]; //含有42个整形指针的数组string bad [cnt];//错cnt不是常量表达式string strs[get_size()]//当get_size是constexpr时...

2022-04-15 11:12:39 116

原创 3.4迭代器介绍

与下标运算符实现相同的目的,就是迭代器(iterator)。有些容器类型不支持下标但支持迭代器迭代器和指针类似,提供对对象的间接访问。就迭代器而言,对象是容器中的元素或者string对象中的字符3.4.1使用迭代器获取迭代器不适用取地址符有迭代器的类型同时返回拥有返回迭代器的成员这些类型拥有名为 begin 和 end的成员//由编译器决定b和e的类型//b表示v的第一个元素,e表示v尾元素的下一位置auto b = v.begin(), e = ...

2022-04-14 12:04:05 401

原创 3.3标准库类型vector

标准库类型vector表示对象的合集,其中所有对象的类型都相同需要包含头文件#include<vector>using std::vector;c++语言既有类模板(class template),也有函数模板vector是一个类模板可将模板看成编译器生成类或函数编写的一份说明编译器根据模板创建类或函数的过程称为 实例化(instantiation)对于类模板来说,通过提供一些额外信息来指定模板到底实例化成什么样的类,需要提供那些信息由模板决...

2022-04-14 12:03:28 165

原创 3.2 标准库类型 string

string是标准库的一部分Note:标准库对一应用场合来说有足够的效率。3.2.1 定义和初始化string对象初始化string对象的方式 string s1 默认初始化,s1是一个空串 string s2(s1) s2是s1的副本 string s2 = s1 同上 string s3(“value ”) ...

2022-04-14 12:02:03 117

原创 3.1 命名空间的using声明

3.1 命名空间的using声明如Using std::cin;//使用cin时,从命名空间std中获取它每个名字都需要独立的using声明头文件不应包含using声明编译本书示例前添加必要的#include 和using...

2022-04-14 11:59:46 168

原创 2.6 自定义数据结构

C++允许用户以类的形式自定义数据类型2.6.1 定义Sales_data类型以关键词 struct 开始,紧跟类名和类体。类内部定义的名字必须唯一,但是可以与类外部定义的名字重复。类后面可以跟变量struct Sales_data{/*...*/} accum,trans,*salesptr;所以不要忘记在类定义后面加分号;;;;;;;;;;;;;;;类数据成员可以为数据成员提供一个类内初始值(in-class initializer)没有...

2022-04-14 11:58:15 316

原创 2.5处理类型

2.5.1 类型别名类型别名(type alias)是一个名字,它是某种类型的同义词。使用类型别名有很多好处,他让复杂的名字简单明了易于理解有两种方法定义类型别名传统方法使用 typedeftypedef double wages ; //wages 是double的同义词typedef wages base, *p; //base是double的同义词,p是 double*的同义词新标准规定新方法, 别名声明(alias declaration)...

2022-04-14 11:57:33 49

原创 2.4 const限定符

const int bufSize =512;bufSize变成了一个常量const对象一旦创建就不能改变,所以const对象必须初始化。初始化和const用一个对象去初始化另一个对象,是不是const都不要紧默认状态下,const对象仅在文件内有效//file_1.cc定义并初始化了一个常量,该常量能被其他文件访问extern const int bufSize =fcn();//file_1.h头文件extern const int bufS...

2022-04-14 11:56:55 484

原创 2.3复合类型

复合类型(compound type)是指基于其他类型定义的类型。C++语言有几种复合类型。本章介绍:引用和指针普通声明:基本数据类型(base type) + 声明符(declarator)2.3.1 引用 Note: 严格来说使用术语“引用(reference)”时,指的是“左值引用(lvalue reference)”引用为对象起了另外一个名字,引用类型引用另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名...

2022-04-14 11:55:54 158

原创 2.2变量

初始化初始化不是赋值,初始化的含义是创建一个变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。列表初始化int u=0;int u = {0};int u{0};int u(0);默认初始化定义变量时没有指定初值,则变量被默认初始化定义于函数体内的内置类型未初始化,则其值未定义。类的对象没有显示初始化,其值由类决定2.2.2 变量声明和定义的关系c++支持分离式编译(separate compi...

2022-04-14 11:54:40 54

原创 2.1 基本内置类型

C++ 定义了一套包括 算术类型(arithmetic type) 和 空类型(void)2.1.1 算术类型算术类型分为两类: 整形(包括字符和布尔) 和浮点型 类型 含义 最小尺寸 bool 布尔类型 未定义 char 字符 8位 wchar_t ...

2022-04-14 11:53:02 156

空空如也

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

TA关注的人

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