complexType

简介: //decltype的表达式如果是加上括号的变量,结果将是引用decltype((variable)) ruiy; //此变量的数据类型是引用(但此处变量的申明语句是错误的,引用不是对象,指向的对象后将不能再指向别的变量) ,所以引用变量 类型必须初始化decltype((i)) d; ...
//decltype的表达式如果是加上括号的变量,结果将是引用
decltype((variable)) ruiy; //此变量的数据类型是引用(但此处变量的申明语句是错误的,引用不是对象,指向的对象后将不能再指向别的变量) ,所以引用变量 类型必须初始化
decltype((i)) d;    //d是int& 
变量尽量初始化
尤其是局部变量;

  

decltype((varuable))结果永远是引用,decltype(variable)结果只有当variable本身就是一个引用时才是引用;
decltype 与auto区别:
decltype 可能参数引用数据类型;
根据表达式判断定义的变量的数据类型
auto 编译器 根据表达式计算结果 断定 声明的数据类型的类型;

  

检查两笔交易涉及的ISBN是否相同
if(data1.bookNo == data2.bookNo)
{
  unsigned totalCnt = data1.units_sold + data2.units_sold;//总销售量
double totalRevenue = data1.revenue + data2.revenue;
//输出ISBN,总销售量,总销售额,平均价格
std::cout << data1.bookNo << " " << totalCnt
<<" " << totalRevenue << " " << totalRevenue / totalCnt << endl;
if(totalCnt != 0) //说明有销售量
std::cout << totalRevenue / totalCnt << std::end;
else
std::cout << "(no sales) " << std::endl;
}
else
{
std::cerr << "Data must refer to the same ISBN" << std:: endl;
return -1;    
}

  

预处理变量的标识符全部大写
头文件保护符header guard 依赖于预处理器变量
*运算符 ,解引用运算符,解引用一个指针将返回指针所指对象,为解引用的结果赋值也就是为指针所指的对象赋值
& operator 取地址运算符
指定机器上进行整数运算的
undefined 未定义可能引发难以追踪的运行时错误,安全问题和可移植
用于访问string中字符或vector元素
string和vector都是对数组的某种抽象
内置类型,内容丰富的抽象数据类型库
string支持可 变产字符串
vector表示可变长集合迭代器标准库类型 是string和vector配套类型 用于访问string字符或是vector元素
string 支持可变长字符串
vector表示可变长集合
迭代器标准库类型 用于访问string中的字符和vector元素
string和vector是对数组的某种抽象
内置类型 语言直接定义 体现计算机硬件本身具备的能力,标准库定义了另外一组具有更高
string表示可变长字符序列
vector存放的是某种给定类型对象的可变长序列

  

标准库类型,访问库中名字简单方法
命名空间using申明,库函数基本都属于命名空间std,
::作用域操作符含义:编译器应从操作符左侧名字所示的作用域中寻找右侧那个名字
std::cin  使用命名空间std中名字cin
单个包含还是整个命名空间
using namespace::Name; 单个
using namespace std;//
标准一方面对库类型所提供的操作做了详细规定,另一方面对库实现做了性能要求
如何初始化类的对象由类本身决定,类可以定义很多初始化对象方式
string s1;
string s2 = s1;
string s3 = "ruiy";// s3是该字符串字面值副本
string s4(10,'c');
提供的是一个数字和一个字符 string对象的内容是给定字符连续重复若干次后得到的序列
string 对象的直接初始化和拷贝初始化
使用= 初始化一个变量,实际上执行的是拷贝初始化(copy initialization) 编译器把等号右侧的初始值拷贝到新对象,不是等号执行的是直接初始化(direct initialization)
初始化对象,定义对象所能执行的操作
通过函数名调用的操作
getline读取正行 希望能在最终得到的字符串中保留输入时空白符
getline函数代替>>运算符
getline函数的参数是一个输入流和一个string对象
函数从给定的输入流读取内容
直到遇到换行符 
换行   空格
getline读取正行
能够再最终得到的字符串中保留输入空格 getline函数 的参数是一个输入流和一个string对象
函数输入流和string对象函数从指定的输入流读取内容 直到遇到换行  换行符也被读取
所读内容存入到string对象,string对象不存换行符getline 一遇到换行就结束读取操作并返回 
\n 读取单个string对象时用cin流  会忽略最初的空格
但在getline(输入流,string对象) 遇到换行符就over,不会忽略一开始的 \ n
getline读取正行
在最终得到的字符串中 getline 代替输入运算符
getline(输入流,string object);函数从cin输入流中读取内容 直到遇到换行符为止
getline(cin,string line)
读取cin输入的 行数据到string line 对象,但是string line对象中不不包括换行符号;
if语句的条件部分使用了 
string对象的长度

  

目录
相关文章
|
机器学习/深度学习 弹性计算 人工智能
ECS使用体验
初次使用云服务器ECS的体验和遇到的相关问题
|
4天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101786 0
|
5天前
|
SQL 关系型数据库 分布式数据库
Doodle Jump — 使用Flutter&Flame开发游戏真不错!
用Flutter&Flame开发游戏是一种什么体验?最近网上冲浪的时候,我偶然发现了一个国外的游戏网站,类似于国内的4399。在浏览时,我遇到了一款经典的小游戏:Doodle Jump...
|
12天前
|
弹性计算 运维 安全
访问控制(RAM)|云上程序使用临时凭证的最佳实践
STS临时访问凭证是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证,减少长期访问密钥(AccessKey)泄露的风险。本文将为您介绍产品原理,以及具体的使用步骤。
151035 4
|
10天前
|
数据采集 存储 运维
提升团队工程交付能力,从“看见”工程活动和研发模式开始
本文从统一工程交付的概念模型开始,介绍了如何将应用交付的模式显式地定义出来,并通过工具平台落地。
119991 57
|
11天前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103505 8
|
12天前
|
人工智能 Serverless 对象存储
让你的文档从静态展示到一键部署可操作验证
通过函数计算的能力让阿里云的文档从静态展示升级为动态可操作验证,用户在文档中单击一键部署可快速完成代码的部署及测试。这一改变已在函数计算的活动沙龙中得到用户的认可。
120867 228
|
12天前
|
SQL 存储 数据可视化
Ganos H3地理网格能力解析与最佳实践
本文介绍了Ganos H3的相关功能,帮助读者快速了解Ganos地理网格的重要特性与应用实践。H3是Uber研发的一种覆盖全球表面的二维地理网格,采用了一种全球统一的、多层次的六边形网格体系来表示地球表面,这种地理网格技术在诸多业务场景中得到广泛应用。Ganos不仅提供了H3网格的全套功能,还支持与其它Ganos时空数据类型进行跨模联合分析,极大程度提升了客户对于时空数据的挖掘分析能力。
|
11天前
|
存储 缓存 安全
深度解析JVM世界:JVM内存结构
深度解析JVM世界:JVM内存结构