day7C++

中心主题

模板:1模板就是一个通用的模具,主要是大大提高代码的复用性 2 C++的另外一种编程思想,泛型编程,主要利用的技术就是模板 3 C++主要提供了两种模板机制:函数模板和类模板

模板的特点 1模板是通用的,但不是万能的。 2 模板不能直接拿来使用,只是一个大致框架

函数模板:就是建立一个通用的函数,及函数返回值、参数类型不具体指定,用一个虚拟类型来替代。 格式 template <typename T>或者template<class T> template ------> 创建模板的关键字,表示开始创建模板 typename ------> 后面的名字,表示虚拟类型的名字,可以以其他字符代替。typename可以用class 替代

子主题 4

类模板 概念: 就是建立一个通用的类,其类的数据成员的类型、成员函数形参的类型不具体指定,用虚拟类型来代替 关键字: template ----->创建模板的关键字,表示开始创建模板。 typename------> 后面的名字,表示虚拟类型的名字,可以用其他字符替代,typename 关键字可以用class替代 注意::使用类模板时需要表明依赖模板的参数数据类型

模板:1模板就是一个通用的模具,主要是大大提高代码的复用性 2 C++的另外一种编程思想,泛型编程,主要利用的技术就是模板 3 C++主要提供了两种模板机制:函数模板和类模板

模板的特点 1模板是通用的,但不是万能的。 2 模板不能直接拿来使用,只是一个大致框架

函数模板:就是建立一个通用的函数,及函数返回值、参数类型不具体指定,用一个虚拟类型来替代。 格式 template <typename T>或者template<class T> template ------> 创建模板的关键字,表示开始创建模板 typename ------> 后面的名字,表示虚拟类型的名字,可以以其他字符代替。typename可以用class 替代

子主题 4

类模板 概念: 就是建立一个通用的类,其类的数据成员的类型、成员函数形参的类型不具体指定,用虚拟类型来代替 关键字: template ----->创建模板的关键字,表示开始创建模板。 typename------> 后面的名字,表示虚拟类型的名字,可以用其他字符替代,typename 关键字可以用class替代 注意::使用类模板时需要表明依赖模板的参数数据类型

模板:1模板就是一个通用的模具,主要是大大提高代码的复用性 2 C++的另外一种编程思想,泛型编程,主要利用的技术就是模板 3 C++主要提供了两种模板机制:函数模板和类模板

模板的特点 1模板是通用的,但不是万能的。 2 模板不能直接拿来使用,只是一个大致框架

函数模板:就是建立一个通用的函数,及函数返回值、参数类型不具体指定,用一个虚拟类型来替代。 格式 template <typename T>或者template<class T> template ------> 创建模板的关键字,表示开始创建模板 typename ------> 后面的名字,表示虚拟类型的名字,可以以其他字符代替。typename可以用class 替代

子主题 4

类模板 概念: 就是建立一个通用的类,其类的数据成员的类型、成员函数形参的类型不具体指定,用虚拟类型来代替 关键字: template ----->创建模板的关键字,表示开始创建模板。 typename------> 后面的名字,表示虚拟类型的名字,可以用其他字符替代,typename 关键字可以用class替代 注意::使用类模板时需要表明依赖模板的参数数据类型

auto :自动类型推导

用途: 1> auto用在修饰数据类型比较冗长的数据类型 2>auto用在 以来模板参数的类型 3>auto用在lambda表达式

auto :自动类型推导

用途: 1> auto用在修饰数据类型比较冗长的数据类型 2>auto用在 以来模板参数的类型 3>auto用在lambda表达式

auto :自动类型推导

用途: 1> auto用在修饰数据类型比较冗长的数据类型 2>auto用在 以来模板参数的类型 3>auto用在lambda表达式

lambda表达式

概念:当需要一个临时的,匿名的、可以捕获外界变量的函数时,可以用lambda表达式完成

捕获外界变量的方式; 值捕获、引用捕获 值捕获:捕获的变量和外界变量不是同一个变量,仅仅只是值相同,并且不能修改,若想对值进行修改,需要加上关键字mutable。 [=]表示对外界所有的变量进行捕获。捕获的变量和外界变量不是同一个变量,但是值相同。 引用捕获 捕获到的变量和外界变量是同一个变量,值和地址都相同,并且可以修改,修改不需要关键字,直接修改就可以。 [&]表示对外界所有的变量进行捕获,捕获到的变量和外界变量是同一个变量,值和地址可以直接修改,不需要借助关键字。

lambda表达式

概念:当需要一个临时的,匿名的、可以捕获外界变量的函数时,可以用lambda表达式完成

捕获外界变量的方式; 值捕获、引用捕获 值捕获:捕获的变量和外界变量不是同一个变量,仅仅只是值相同,并且不能修改,若想对值进行修改,需要加上关键字mutable。 [=]表示对外界所有的变量进行捕获。捕获的变量和外界变量不是同一个变量,但是值相同。 引用捕获 捕获到的变量和外界变量是同一个变量,值和地址都相同,并且可以修改,修改不需要关键字,直接修改就可以。 [&]表示对外界所有的变量进行捕获,捕获到的变量和外界变量是同一个变量,值和地址可以直接修改,不需要借助关键字。

lambda表达式

概念:当需要一个临时的,匿名的、可以捕获外界变量的函数时,可以用lambda表达式完成

捕获外界变量的方式; 值捕获、引用捕获 值捕获:捕获的变量和外界变量不是同一个变量,仅仅只是值相同,并且不能修改,若想对值进行修改,需要加上关键字mutable。 [=]表示对外界所有的变量进行捕获。捕获的变量和外界变量不是同一个变量,但是值相同。 引用捕获 捕获到的变量和外界变量是同一个变量,值和地址都相同,并且可以修改,修改不需要关键字,直接修改就可以。 [&]表示对外界所有的变量进行捕获,捕获到的变量和外界变量是同一个变量,值和地址可以直接修改,不需要借助关键字。

C++中的数据类型转换 概念:C++中存在多种数据类型的转换方式,用于在不同数据类型之间进行转换。

隐士类型转换(自动类型转换)例如:将较小类型的整数转换为较大的整数类型,如将int 转换为double

显示类型转换(强制类型转换)这种类型转换会导致数据据的截断或者精度丢失,因此要小心使用

强制类型和转换又分为静态转换和动态转换 静态转换:(static_cast) 用于基本数据类型之间的转换 以及父类指针/引用转换为子类指针/引用 还可以应用于不同类型的指针之间的转换

动态转换 (dynamic_cast) 通常用于多态类之间的指针或引用类型转,确保类型安全,在运行时进行类型检查,只能用于具有虚函数的类之间的转换。

常量转换 (const _cast) 用于添加或移除 指针或引用的常变量。它可以用来去除const 限定符,但要注意潜在的未定义行为

C风格类型转换;与C语言中的类型转换方式相似,包括以下几种 c样式转换:使用强制类型转换操作符进行转换,类似C语言中的类型转换 函数样式转换(函数式转换):使用C++中的类型转换函数进行转换

注意: 需要注意的是,尽管C++提供了多种类型转换但应该谨慎使用以避免潜在的错误和问题/特别是在使用强制类型转换时,无比确保转换操作是安全的,以避免不必要的问题。

C++中的数据类型转换 概念:C++中存在多种数据类型的转换方式,用于在不同数据类型之间进行转换。

隐士类型转换(自动类型转换)例如:将较小类型的整数转换为较大的整数类型,如将int 转换为double

显示类型转换(强制类型转换)这种类型转换会导致数据据的截断或者精度丢失,因此要小心使用

强制类型和转换又分为静态转换和动态转换 静态转换:(static_cast) 用于基本数据类型之间的转换 以及父类指针/引用转换为子类指针/引用 还可以应用于不同类型的指针之间的转换

动态转换 (dynamic_cast) 通常用于多态类之间的指针或引用类型转,确保类型安全,在运行时进行类型检查,只能用于具有虚函数的类之间的转换。

常量转换 (const _cast) 用于添加或移除 指针或引用的常变量。它可以用来去除const 限定符,但要注意潜在的未定义行为

C风格类型转换;与C语言中的类型转换方式相似,包括以下几种 c样式转换:使用强制类型转换操作符进行转换,类似C语言中的类型转换 函数样式转换(函数式转换):使用C++中的类型转换函数进行转换

注意: 需要注意的是,尽管C++提供了多种类型转换但应该谨慎使用以避免潜在的错误和问题/特别是在使用强制类型转换时,无比确保转换操作是安全的,以避免不必要的问题。

C++中的数据类型转换 概念:C++中存在多种数据类型的转换方式,用于在不同数据类型之间进行转换。

隐士类型转换(自动类型转换)例如:将较小类型的整数转换为较大的整数类型,如将int 转换为double

显示类型转换(强制类型转换)这种类型转换会导致数据据的截断或者精度丢失,因此要小心使用

强制类型和转换又分为静态转换和动态转换 静态转换:(static_cast) 用于基本数据类型之间的转换 以及父类指针/引用转换为子类指针/引用 还可以应用于不同类型的指针之间的转换

动态转换 (dynamic_cast) 通常用于多态类之间的指针或引用类型转,确保类型安全,在运行时进行类型检查,只能用于具有虚函数的类之间的转换。

常量转换 (const _cast) 用于添加或移除 指针或引用的常变量。它可以用来去除const 限定符,但要注意潜在的未定义行为

C风格类型转换;与C语言中的类型转换方式相似,包括以下几种 c样式转换:使用强制类型转换操作符进行转换,类似C语言中的类型转换 函数样式转换(函数式转换):使用C++中的类型转换函数进行转换

注意: 需要注意的是,尽管C++提供了多种类型转换但应该谨慎使用以避免潜在的错误和问题/特别是在使用强制类型转换时,无比确保转换操作是安全的,以避免不必要的问题。

异常的处理 throw--->将已经发生异常的地方进行抛出 catch ------>捕获异常,进行相关处理 try -----> 将可能发生异常的地方,使用try进行包裹

异常的处理 throw--->将已经发生异常的地方进行抛出 catch ------>捕获异常,进行相关处理 try -----> 将可能发生异常的地方,使用try进行包裹

异常的处理 throw--->将已经发生异常的地方进行抛出 catch ------>捕获异常,进行相关处理 try -----> 将可能发生异常的地方,使用try进行包裹

C++的标准模板库(STL:Standard Template Library) 组成: 容器 、算法、迭代器 容器:存储数据 算法:解决问题的(例如:增删改查) 迭代器:是算法和容器的粘合剂。 在代码当中以指针形式出现

vector容器 vector就是数组,和普通数组的区别在于,普通数组是静态空间,二vector是动态空间的。 动态拓展:不是在原来的基础上续借新的空间,而是重新申请一片新的空间,将原来的空间里的数据复制到新申请的空间中,在释放原来的空间。 需要包含头文件 #include <vector>

vector的构造函数 vector<T>v; //无参构造 vector(const vector &v); //拷贝构造 vector(v.begin(),v,end()); //将一个对象的区间[v.begin(),v.end()]构造该对象

C++的标准模板库(STL:Standard Template Library) 组成: 容器 、算法、迭代器 容器:存储数据 算法:解决问题的(例如:增删改查) 迭代器:是算法和容器的粘合剂。 在代码当中以指针形式出现

vector容器 vector就是数组,和普通数组的区别在于,普通数组是静态空间,二vector是动态空间的。 动态拓展:不是在原来的基础上续借新的空间,而是重新申请一片新的空间,将原来的空间里的数据复制到新申请的空间中,在释放原来的空间。 需要包含头文件 #include <vector>

vector的构造函数 vector<T>v; //无参构造 vector(const vector &v); //拷贝构造 vector(v.begin(),v,end()); //将一个对象的区间[v.begin(),v.end()]构造该对象

C++的标准模板库(STL:Standard Template Library) 组成: 容器 、算法、迭代器 容器:存储数据 算法:解决问题的(例如:增删改查) 迭代器:是算法和容器的粘合剂。 在代码当中以指针形式出现

vector容器 vector就是数组,和普通数组的区别在于,普通数组是静态空间,二vector是动态空间的。 动态拓展:不是在原来的基础上续借新的空间,而是重新申请一片新的空间,将原来的空间里的数据复制到新申请的空间中,在释放原来的空间。 需要包含头文件 #include <vector>

vector的构造函数 vector<T>v; //无参构造 vector(const vector &v); //拷贝构造 vector(v.begin(),v,end()); //将一个对象的区间[v.begin(),v.end()]构造该对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值