infos

简介: C++文件流iostream 提供了cin cout 分别用于从标准输入读取流和向标准输出写入流cout 标准输出 屏幕 输出写入fstream文件流 cin 从标准输入读取cout 向标准输入写入ofstream 向文件写入ifstream 从文件读取fstream 从文件读取、向文件...

C++文件流

iostream 提供了cin cout 分别用于从标准输入读取流和向标准输出写入流
cout 标准输出 屏幕 输出写入
fstream文件流

cin 从标准输入读取
cout 向标准输入写入


ofstream 向文件写入
ifstream 从文件读取
fstream 从文件读取、向文件写入

文件处理 <iostream>
<fstream>
打开文件 从文件读取信息或者向文件写入信息ofstream ifstream;
必须先打开
ofstream和fstream对象都可以用来打开文件进行写操作
打开文件进行读取ifstream fstream

open()函数标准语法
open()函数是fstream ifstream ofstream对象的一个成员
void open(const char *filename,ios::openmode mode);
open()成员函数的第一个参数指定要打开的文件的名称和位置 要打开的文件的名称位置,第二个参数定义文件被打开的模式
ios::app
ios::ate 文件打开后定位到文件末尾
打开模式
iso::in
ios::out 写入
ofstream 写入
ios::trunc 文件已经存在 内容将在打开文件之前被切段 文件长度为0
两种或是两种以上模式集合使用
写入模式ios::out
ios::in 读取
ifstream

ofstream

打开一个文件用于读写
fstream afile;

声明对象
类对象成员
fstream ffile
ffile.open("file.dat",ios::out | ios::in)

关闭文件
程序终止 会自动关闭刷新流 释放所有分配的内存 关闭打开的文件
函数是 类对象的成员
fstream ifstream ofstream类对象成员
void c loese()

写入文件
流插入运算符<<向文件写入信息
输出信息到屏幕 ofstream fstream

刘提取 读取
ifstream fstream


流插入

文件位置指针
istream和ostream都提供了用于重新定义文件位置指针的成员函数重新定位文件位置指针函数成员函数包括关于
istream seekg("seek get")


文件位置指针
file seek pointer;
position

istream ostream 提供了用于重新定位文件位置指针的成员
重新定位文件位置指针的成员函数
seekg 长整形 指定查找方向


fileObject.seekg(n);
把文件的度读指针从fileObject当前位置向后移n个字节

fileObject.seekg(n,ios::end)
文件的读指针从fileObjace末尾往回移动n个字节

定位到fileObject末尾
fileObject.seekg(0,ios::end);

写(输出) 与 流插入运算符<<
读(输入) 与 流提取运算符 >>
exception 异常程序在执行期间产生的问题
程序运行时发生的特殊情况异常提供了一种转移程序控制权的方式
c++异常处理涉及到三个关键字try catch throw
throw问题出现 程序抛出异常 通过throw关键字完成
catch 想要处理问题的地方,通过异常处理程序捕获异常catch关键字 catch捕获异常

try
try中的代码标识将被激活的特殊异常 try跟多个catch
有一个块抛出异常 捕获异常的方法使用try catch try块中放置可能抛出异常的 代码
try中放置可能抛出异常的代码,try块中的代码被称为保护代码
try放置可能抛出异常的代码,try块中的 代码被称为保护代码

try
{
//保护代码
}catch(ExceptionName e1)
{
//catch block
}catch(ExceptionName e2)
{
//catch block
}catch(ExceptionName eN)
{
//catch block;
}

C++异常处理
执行期间产生的问题
运行发生的特殊情况 异常提供了一种转移程序控制权的方式
throw 出现问题 程序抛出异常
catch 想处理问题的地方 通过异常处理程序捕获异常 catch关键字用于捕获异常
try块中的代码标识将被激活的特定异常
try块代码标识将被激活的特定异常
try块中的保护代码标识将被激活的特定异常
malloc() new不只是分配内存任何 动态分配内存的变量不再需要使用 delete操作符释放占用内存
delete pvalue;
堆:函数中暂时未使用的内存 在程序运行 用于动态分配的内存
栈:函数中所有申明的变量使用的内存都是

stack
namespace
区分它们 使用名字之外使用一些额外的信息 std::
应用程序
可用的库中也存在一个相同的函数
编译器无法判断 那个
命名空间 作为附加信息来区分库相同名称的标识
上下文
使用命名空间定义了上下文 命名空间就是定义了一个范围
定义命名空间
命名空间的定义使用关键字namespace using namespace std;
命名空间的定义使用关键字namespace 后跟命名空间的名称;
namespace namespace_name
{
//

为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称
name::code; code 变量函数
命名空间如何为变量或函数等实体定义范围
命名空间如何为变量或函数等实体定义范围
using
使用using namespace 這样在使用命名空间时就可以不用在前面加上命名空间的名称
這个指令告诉编译器 后续的代码将使用指定的命名空间中的名称
using namespace 使用命名空间 不用在前面加上命名空间的名称 告诉编译器 后续的代码将使用指定的命名空间名称

using指令 指定命名空间中的特定项目
使用std命名空间的cout
using std::cout;

命名空间中特定名称
using namespace::item
整个命名空间
using namespace namespaceName;
随后代码 使用cout不用加命名空间名称作为前缀
但是std命名 空间其他项目仍加上命名空间名称作为前缀
using指令引入的名称遵循正常的范围规则

using指令引入的名称遵循正常的范围规则 名称从使用using指令可见
using
命名空间可以定义在几个不同的部分
不连续命名空间
命名空间定义在几个不同的部分命名空间由几个单独定义的部分组成命名空间的各个组成部分可以分散在多个文件

具体到那个命名空间下的项目item using namespaceName::item
引入命名空间 下 的所
using namespace namespaceName

模板
泛型编程的基础
泛型编程以一种独立任何特定类型的方式编程
泛型编程即以一种独立于任何特定类型的方式编写代码

库容器 迭代器
template 模板泛型编程的
函数模板
template <class type> ret-type func-name(parameter list);
template
模板支持参数化多态工具 模板使用户为类或者函数
模板 使用模板 可以使用户为类或者函数声明一种一般模式 是用户为类或函数申明为一种一般模式
使得类中的某些数据成员或者成员函数的参数
模板支持参数化多态 模板可以使用户为类或者函数声明一种一般模式
类中 的某些数据成员或者成员函数的参数 返回值取得任意类型
模板 是一种对类型进行参数化的工具
让程序的实现与类型无关

模板的声明定义只能在全局
不能在main函数中声明或定义模板

既可以在该函数中使用内置类型的地方都可以使用模板形参参数
模板形参需要调用该模板函数 提供的模板实参来初始化模板形参
一旦编译器确定了实际的模板实参类型就称实例化为函数模板的一个实例
函数模板调用
都是以template开始后接模板形参列表组成 模板形参列表 模板形参不能为空
typename class 一样表明后面的符号为一个类型
定义模板
表明后面的符号为类型
template<typename T>

使用嵌套依赖类型
nested depended name

多线程 多任务处理的特殊形式
多任务处理允许让电脑同时运行多个程序
多线程 task 多任务 多线程 多任务
多任务处理允许让电脑同时运行两个

目录
相关文章
|
1天前
|
存储 关系型数据库 MySQL
数据管理的艺术:PolarDB开源版详评与实战部署策略(一)
PolarDB-X是阿里巴巴自研的高性能云原生分布式数据库,基于共享存储的Shared-nothing架构,支持MySQL生态,具备金融级高可用、分布式水平扩展、HTAP混合负载等能力。它通过CN(计算节点)和DN(存储节点)实现计算与存储分离,保证数据强一致性,并支持全局二级索引和多主多写。PolarDB-X开源版提供更高程度的定制化和控制权,适合追求技术自主性和成本优化的开发者。部署方式包括RPM包、PXD工具和Kubernetes,其中PXD工具提供了一键部署的便利性。
44788 10
|
5天前
|
关系型数据库 Serverless 分布式数据库
高峰无忧,探索PolarDB PG版Serverless的弹性魅力
在数字经济时代,数据库成为企业命脉,面对爆炸式增长的数据,企业面临管理挑战。云原生和Serverless技术革新数据库领域,PolarDB PG Serverless作为阿里云的云原生数据库解决方案,融合Serverless与PostgreSQL,实现自动弹性扩展,按需计费,降低运维成本。它通过计算与存储分离技术,提供高可用性、灾备策略和简化运维。PolarDB PG Serverless智能应变业务峰值,实时监控与调整资源,确保性能稳定。通过免费体验,用户可观察其弹性性能和价格力,感受技术优势。
|
15天前
|
存储 缓存 监控
你的Redis真的变慢了吗?性能优化如何做
本文先讲述了Redis变慢的判别方法,后面讲述了如何提升性能。
102248 5
|
15天前
|
机器学习/深度学习 并行计算 算法
Transformer 一起动手编码学原理
学习Transformer,快来跟着作者动手写一个。
94256 8
|
14天前
|
存储 SQL Apache
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
|
19天前
|
人工智能 弹性计算 算法
一文解读:阿里云AI基础设施的演进与挑战
对于如何更好地释放云上性能助力AIGC应用创新?“阿里云弹性计算为云上客户提供了ECS GPU DeepGPU增强工具包,帮助用户在云上高效地构建AI训练和AI推理基础设施,从而提高算力利用效率。”李鹏介绍到。目前,阿里云ECS DeepGPU已经帮助众多客户实现性能的大幅提升。其中,LLM微调训练场景下性能最高可提升80%,Stable Difussion推理场景下性能最高可提升60%。
124038 50
|
15天前
|
存储 弹性计算 Cloud Native
1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效
为应对挑战,语势科技采用云工作流CloudFlow和函数计算FC,实现数据处理流程的高效管理与弹性伸缩,提升整体研发效能。
64755 2
|
21天前
|
消息中间件 安全 API
Apache RocketMQ ACL 2.0 全新升级
RocketMQ ACL 2.0 不管是在模型设计、可扩展性方面,还是安全性和性能方面都进行了全新的升级。旨在能够为用户提供精细化的访问控制,同时,简化权限的配置流程。欢迎大家尝试体验新版本,并应用在生产环境中。
187614 38
|
17天前
|
存储 关系型数据库 数据库
|
24天前
|
物联网 PyTorch 测试技术
手把手教你捏一个自己的Agent
Modelscope AgentFabric是一个基于ModelScope-Agent的交互式智能体应用,用于方便地创建针对各种现实应用量身定制智能体,目前已经在生产级别落地。