Learn C++ by Accelerated C++(to be continued)

relay_subgraph_partition_one_slide.pptx 立即下载


Learn C++ by Accelerated C++

0. Getting started

知识点

  • 标准库、核心语言
  • 程序结构:自由风格
  • 类型
  • 命名空间
  • 定义和头文件
  • 主函数
  • 花括号和分号

第一个C++程序

#include<iostream> // 标准库头文件,输入/输出流(Input/Output Stream)
int main(){       // 调用主函数响应程序需求(返回0或者其它)
    std::cout << "Hello, World!" << std::endl;
    //  使用标准库中的输出运算符 << 将 'Hello, World!'写到标准输出中,并显示在cout所在窗口,std::endl为当前输出语句行的结束,并实现换行(本质上是用两个<<实现了连续的输出)
    return 0;  // 返回0(表示成功)

}
  • #include指令是一种是调取头文件的工具,用来明确指定程序所需的那部分头文件
  • iostream是Standard library header 即标准库头文件
  • << 是一种运算符(operator)
  • std::cout 和 std::endl是操作数(operand),其中后者是控制器
  • cout是标准库中的对象;endl是一个函数模板
  • : 是作用域运算符,std:cout表示的是在(名字空间)作用域std中的名称cout
  • "Hello, World!" 是表达式(expression)

一些问题:
什么是定义,什么是头文件?
在这里插入图片描述

头文件和标准库的区别?

什么是核心语言?什么是标准库?

习题:

  • 0-0
#include <iostream>

int main() {
  std::cout << "Hello, world!" << std::endl;

  return 0;
}
  • 0-2
#include <iostream>

int main() {
    std::cout << "This (\") is a quote, and this (\\) is a backslash."
    << std::endl;
    
    return 0;
}
  • 0-4
# include <iostream>

int main(){
    std::cout<<
    "#include <iostream>\n"
    "\n"
    "int main(){\n"
    "\tstd::cout<<\"Hello,world\"<<std::endl;\n"
    "\treturn 0;\n"
        "}\n"
    <<std::endl;
    return 0;
}


#include <iostream>

int main(){
	std::cout<<"Hello,world"<<std::endl;
	return 0;
}

Program ended with exit code: 0
  • 0-9
int main(){}
  • 0-10
#include<iostream>

int
main
(
)
{
std
::
cout
<<
"Hello, world!"
<<
std
::
endl
;
return
0
;
}

1. 使用字符串

知识点

  • 声明
  • 变量
  • 初始化
  • 输入
  • string 库

1.1 输入

#include<iostream>
#include<string>

int main(){
    // 请某人输入姓名
    std::cout << "Please enter your first name: ";
    // 读姓名
    std::string name; // 定义变量 name
    std::cin >> name; // 把姓名读进 name
    
    // 输出对这个人的问候语
    
    std::cout << "Hello, " << name << "!" << std::endl;
    return 0;
    
}

从现在开始,以后的代码不再由Xcode完成,而是转向使用jupyter notebook ,环境配置可查看之前的文章:Mac上配置环境并运行第一个C++程序

1.2 为姓名装框

std::cout << "Please enter your first name: ";
std::string name;     
std::cin >> name;
const std::string greeting = "Hello, " + name + "!";
const std::string spaces(greeting.size(), ' ');     
const std::string second = "* " + spaces + " *";
const std::string first(second.size(), '*');
std::cout << std::endl;     
std::cout << first << std::endl;     
std::cout << second << std::endl;     
std::cout << "* " << greeting << " *" << std::endl;     std::cout << second << std::endl;     
std::cout << first << std::endl;
Please enter your first name: Robin_pi

********************
 1.                  *
 2. Hello, Robin_pi! *
 3.                  *
********************
 4. List item

  • std::cout << "xxxx" 输出(write)
  • std::string name 定义变量name,类型为std::string
  • std::cin >> name 输入(read)
  • 运算符是左结合的

  • 运算符是右结合的

  • = 实现变量赋值(同时完成初始化)
  • const 为常量关键字,可以确保常量变量的值不会改变

一些问题:
是什么是变量?作用是什么?和对象的区别是什么?
存放数据的地方,是一个具有名称的对象,而对象是计算机中的一段具有类型的内存空间。
什么是类型?有哪些类型?

表达式包含操作数和运算符,每一个操作数都具有一个类型,比如核心语言定义了int代表的是整数类型,库定义了std::ostream作为提供了基于流的输出的类型。

小结

在这里插入图片描述注意:在一对花括号内定义的变量是局部变量。

习题

暂略~

2. 循环和计数

知识点

  • 循环
  • 条件分支
  • 循环不变式

while 语句

while(condition)
    statement   // <font color =red>若statement为语句,则其本身包含了分号;,若为块语句,则它本身也会有{},所以没有分号;

或者

while(condition) statement
  • 设计循环语句

略

if 语句

if (condition)
    statement   // 同 while,这里面要么是语句(分号;结尾)要么是语句块(用花括号{}包起来)

或者

if (condition)
    statement1 
else
    statement2

略~

程序简化

  • using 声明
  • for 语句
for(init-statement condition;expression)  // 注意,初始化语句本身包含了分号;
    statement

例如:

#include<iostream>
#include<string>

int main(){
    for (int r = 0; r <= 3; ++r)  // `++r` 特指 `r = r + 1`,即返回相加后的值(若是`++r`则是返回r的原始值)
        std::cout << "*";
} 

一般而言,for语句的意义相当于:

{
init-statement     
while (condition) {
           statement           
           expression; 
           }
}

即:

#include<iostream>
#include<string>

int main(){
    int r=0;
    while (r<=3){
        std::cout << "*";
        ++r;
    }
    
}
  • 压缩检测

计数

  • 从0开始计数
for (string::size_type r = 0; r != rows; ++r) {
    // <输出一行>
}
  • 从1开始计数
for (string::size_type r = 1; r <= rows; ++r) {
    // <输出一行>
}

两种方式循环的次数一样,但是一般都选择从0开始计数:可以使用不对称区间来表示间隔。原因如下:

不对称区间的一个重要性质:在一个形式为[m,n)的区间包含 n-m 个元素,而形式[m,n]的区间中则有 m-n+1 个元素。(即可以很快地看出区间中所包含的元素个数)
从零计数使得循环不变式更易于表达:(对于[0,rows])到目前为止,我们已经输出了r 行。
用 != 比 <=使我们更能了解程序的状态:前者表示已经输出了r行,而后者表示至少输出了r行(可能更多!)

小结

(1)操作数(operators)
在这里插入图片描述在这里插入图片描述

(2)类型
在这里插入图片描述

本章的一些问题:

  • 为什么不直接使用int而是使用const int?const的作用是什么?
    一,减少出错的几率;二,明确地向读代码的人传递信息:不能修改这个变量
  • (定义字符串的长度变量时)为什么不直接使用const int cols而是使用const std::string::size_type cols?size_type和int的用法区别?
    size_type为无符号类型,int为有符号类型(可能为负数)。一般我们都会用std::string::size_type来当做储存字符串长度的变量的变量类型。

…

习题

暂时决定:习题与理论分开(加快速度)

使用批量数据

一些数据类型

  • int:整型
  • double :双精度浮点类型
  • float :单精度浮点类型

一些操作:

  • ? : 运算符:条件运算符,是 if-else-then 的缩写,即 if xxx (?) else (:)xxx

类型定义:

  • typedef type name;

组织程序和数据

知识点

  • 函数(子程序)
  • 数据结构
  • 程序结构

变量引用:

  • vector<double>& hw = homework; //hw是homework的一个替代名
  • count vector<double>& chwl = chw; // 注意chwl是只读的

使用顺序容器并分析字符串

使用库算法

  • 泛型算法
  • 增量算法

使用关联容器

使用泛型函数

定义新类型

管理内存和低级数据结构

  • 指针与数组

定义抽象数据类型

使类对象像一个数值一样工作

使用继承与动态绑定

近乎自动地管理内存

再探字符图形

参考:

  1. 代码部分的参考答案(已下载至本地:github-Accelerated C++)
  2. 全部的答案(已下载本地:github-Accelerated-cpp-master)
  3. C++ reference——要多多查看官方文档!
不会出现 服务器正在连接 的搜索器 立即下载

相关推荐

3.react-state-notes.zip

3.react-state-notes.zip

Unity依赖注入实战:内置容器解耦游戏代码与单元测试指南

依赖注入是一种实现控制反转的软件设计模式,其核心原理是将对象的依赖关系从内部创建转为外部注入,从而降低模块间的耦合度。这一模式的技术价值在于提升代码的可测试性、可维护性和可扩展性,使系统更易于重构和团队协作。在游戏开发领域,依赖注入能有效解决脚本间紧耦合、资源管理混乱等常见问题,尤其适用于Unity引擎中的模块化架构设计。通过使用Unity内置的依赖注入容器,开发者可以实现零额外依赖的服务管理,结合构造函数注入、方法注入等方式,将游戏逻辑与具体实现分离。这种工程实践不仅优化了代码结构,还为单元测试提供了便利

weixin_30878501的博客 417

triton-inference-server-ge-backend

新版本特性 v2.3.0 支持对全局、session、graph 的options进行添加,从而进一步调优模型,相关案例请参考 性能调优方法论。 支持采用分档模式将符合条件模型转化为静态图,提高吞吐性能。 补充如何采用分档模式+锁核+调整精度,进一步提高性能。 在AscendHub下载镜像时需确认好版本,若使用旧版本镜像,需要手工下载源码编译生成新的backend后才能支持新特性。 版本特性 v2.2.0 支持从onnx文件读取模型输入输出信息, config中若无指定input,output,将会自动从文件中读取; 调整动态图在多实例下使用多Session方式,提高并发吞吐(显存占用会增高); 支持动态batch场景小batch动态合并特性,配合多Session,提高吞吐; 补充调优方法论以及cnclip模型的最佳实践; 支持多模型特性,可支持同时拉起多个模型,提高显存利用率; 支持非0轴动态shape场景; 支持TensorFlow的pb文件。

一个免费的激光打标软件的配套硬件说明

激光打标软件配套硬件说明

2007-2025年36家商业银行绿色信贷余额数据(2025年无缺失)

1、指标覆盖区间为2007年至2025年 2、数据取自各银行年度报告及社会责任报告 3、核心指标为绿色信贷余额 4、涉及银行包括:苏农银行、中国银行、紫金银行、杭州银行、华夏银行、邮储银行、青岛银行、兴业银行、苏州银行、农业银行、宁波银行、上海银行、江阴银行、招商银行、长沙银行、北京银行、无锡银行、民生银行、浙商银行、常熟银行、成都银行、工商银行、郑州银行、光大银行、南京银行、建设银行、浦发银行、贵阳银行、渝农商行、西安银行、交通银行、江苏银行、中信银行、张家港行、平安银行、青农商行

2019-2026年 中国分行业进出口数据 xlsx

数据整理中国各细分行业海关进出口数据,包括中国对各个国家进口、出口数据,中国各个行业进出口数据,各国贸易数据是了解每个国家市场的最基础和重要信息。数据非面板数据,时间、行业分类有缺失。 标 日期 采购商国家/地区 供应商国家/地区 采购商 供应商 采购商地址 供应商地址 通知人 通知人地址 制造商 原产国 目的国 起运港 目的港 HS编码 产品描述 唛头 数量 数量单位 重量 金额($) 单号 集装箱号 品牌

高校技术转移办公室人员如何利用知识图谱技术提升科技成果评价的科学性与高效性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

2000-2024年 各地区结婚、离婚、再婚等数据-各地区 xlsx

一般来说,经济发达地区的结婚和离婚率相对较高,而经济欠发达地区的结婚和离婚率相对较低。此外,不同省份的文化、习俗、社会观念等因素也会对结婚和离婚情况产生影响。 本数据从2000年至2024年,对各地区的结婚、离婚及再婚情况进行了全面统计。通过对这些数据的深入分析,我们可以洞察婚姻趋势的演变轨迹,以及地区之间的差异性。这些数据不仅反映了人们的婚姻选择、家庭形态的变化,还揭示了社会动态的演变。对于研究家庭结构和社会变迁的学者而言,这份数据提供了宝贵的参考依据和信息。 相关数据 年份 地区 行政区划代码 所属地域 年末常住人口(万人) 人口出生率(‰) 人口死亡率(‰) 15岁及以上人口数(人口抽样调查)(人) 15岁及以上男性人口数(人口抽样调查)(人) 15岁及以上女性人口数(人口抽样调查)(人) 15岁及以上未婚人口数(人口抽样调查)(人) 15岁及以上男性未婚人口数(人口抽样调查)(人) 15岁及以上女性未婚人口数(人口抽样调查)(人) 15岁及以上初婚有配偶人口数(人口抽样调查)(人) 15岁及以上男性初婚有配偶人口数(人口抽样调查)(人) 15岁及以上女性初婚有配偶人口数(人口抽样调查)(人) 15岁及以上再婚有配偶人口数(人口抽样调查)(人) 15岁及以上男性再婚有配偶人口数(人口抽样调查)(人) 15岁及以上女性再婚有配偶人口数(人口抽样调查)(人) 15岁及以上离婚人口数(人口抽样调查)(人) 15岁及以上男性离婚人口数(人口抽样调查)(人) 15岁及以上女性离婚人口数(人口抽样调查)(人) 15岁及以上丧偶人口数(人口抽样调查)(人) 15岁及以上男性丧偶人口数(人口抽样调查)(人) 15岁及以上女性丧偶人口数(人口抽样调查)(人) 15岁及以上有配偶人口数(人口抽样调查)(人) 15岁及以上男性有配偶人口数(人口抽样调查)(人) 15岁及以上女性有配偶人口数(人口抽样调查)(人) 结婚登记(万对) 内地居民登记结婚(万对) 内地居民初婚登记(万人) 内地居民再婚登记(万人) 涉外及港澳台居民登记结婚(万对) 离婚登记(万对) 粗离婚率(‰)

国央企创新负责人在推动内部技术转化时,如何确保服务流程的合规与可控?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

后端开发 Docker4.99.0 AppleSilicon 苹果芯片 Mac 安装包

本资源为 Docker Desktop 4.99.0 苹果芯片(Apple Silicon)专用安装包,原生适配 M 系列 Mac,可快速搭建本地容器开发环境,支持镜像拉取、容器编排、项目打包部署。适合后端开发、运维、全栈开发者,用于本地微服务、测试环境、项目容器化开发。

milvus-v2.6.25镜像文件

milvus-v2.6.25镜像文件

国央企在推动创新成果转化时,如何保障技术交易流程的合规性与可追溯性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

医学信息影像AI临床采纳的责任边界研究:基于场景选点与流程嵌入的分步实施路径

内容概要:本文以“影像人工智能(CAD)的临床采纳与责任边界”为核心议题,指出当前影像AI的发展瓶颈已从技术准确性转向“谁负责、怎么用”的机制与治理问题。通过文献研究与政策文本分析,文章系统梳理了CAD的应用场景与效果、临床采纳障碍及责任边界划分三大问题,揭示出“假阳性导致医生信任下降、责任归属不清、采购与使用脱节”三重瓶颈相互强化的闭环结构,并提出“场景选点—试用验证—责任规则先行—流程嵌入”的分步递进式建设路径,强调需通过机制闭环实现技术真正落地。; 适合人群:从事医疗信息化管理、医学人工智能研究、医院运营管理及相关政策制定的专业人员,以及医学信息学、卫生管理专业的高年级本科生与研究生。; 使用场景及目标:①用于医疗机构评估影像AI引入的可行性与实施路径,避免资源错配;②为政策制定者提供优化考核机制与责任界定的理论依据;③帮助AI厂商理解临床真实需求,提升产品与流程的契合度;④作为学术研究框架,支持对技术采纳与治理机制的深入探讨。; 阅读建议:本文构建了“现状—机制—治理”三层分析框架,建议读者结合自身角色聚焦不同章节:管理者重点关注第五章路径设计,研究者关注第三章文献述评与第六章研究展望,实施者关注第四章瓶颈分析与实施保障。阅读时应特别注意概念的操作化定义与证据等级区分,避免将理论推导误作实证结论,并在应用时结合本地实际进行裁剪与验证。

科技中介服务机构在进行技术需求挖掘时,如何避免遗漏关键信息并提高匹配精准度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

推动企业技术需求与高校科研成果对接,需要哪些关键支撑要素?.docx

推动企业技术需求与高校科研成果对接,需要哪些关键支撑要素?

科技中介服务机构如何高效开展技术需求挖掘与分析?.docx

科技中介服务机构如何高效开展技术需求挖掘与分析?

期权五档行情数据包含交易时间(精确至毫秒)、合约代码、买一至买五价格及数量、卖一至卖五价格及数量,同时记录最新价、成交量与持仓量 分钟级别行情数据为逐分钟合成的K线,字段包括时间、合约代码、开盘价、最

期权五档行情数据包含交易时间(精确至毫秒)、合约代码、买一至买五价格及数量、卖一至卖五价格及数量,同时记录最新价、成交量与持仓量。分钟级别行情数据为逐分钟合成的K线,字段包括时间、合约代码、开盘价、最高价、最低价、收盘价、成交量、成交额和持仓量。 数据源:CMES金融数据库

A股分钟行情数据,涵盖股票、ETF、可转债及指数 每条记录包含交易日期、具体时间、证券代码、证券简称、开盘价、最高价、最低价、收盘价、成交量、成交额 数据为日内分钟频率,逐分钟记录价格变动与成交信息

A股分钟行情数据,涵盖股票、ETF、可转债及指数。每条记录包含交易日期、具体时间、证券代码、证券简称、开盘价、最高价、最低价、收盘价、成交量、成交额。数据为日内分钟频率,逐分钟记录价格变动与成交信息,按交易日分割存储,历史分钟K线保留完整。 数据源:CMES金融数据库

上一篇: 虹软人脸识别SDK的Linux版本Demo-sample实践
下一篇: jupyter notebook 突然无法在网页切换不同的虚拟环境
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值