
C++查漏补缺
文章平均质量分 82
蜉蝣之翼❉
这个作者很懒,什么都没留下…
展开
-
2025 学习计划
伯克利并行计算巨佬James Demmel和Kathy Yelick这学期的并行计算机课。原创 2025-02-07 14:30:01 · 213 阅读 · 0 评论 -
C++ primer 查漏补缺十四:顺序容器操作
其实本质上和size_type没有多大区别。其实size_t和size_type类似,size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版本.它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。原创 2022-09-28 10:46:18 · 463 阅读 · 0 评论 -
C++ primer 查漏补缺十三:顺序容器概述
array固定大小. 其他的容器都提供高效、灵活的内存管理。我们可以添加和删除元素,扩张和收缩容器的大小。string和vector将元素保存在连续的内存空间中。由于元素是连续存储的,由元素的下标来计算其地址是非常快速的。但是,在这两种容器的中间位置添加或删除元素就会非常耗时:在一次插入或删除操作后,需要移动插入/删除位置之后的所有元素,来保持连续存储。而且,添加一个元素有时可能还需要分配额外的存储空间。在这种情况下,每个元素都必须移动到新的存储空间中。原创 2022-09-14 08:59:21 · 166 阅读 · 0 评论 -
C++ primer 查漏补缺十一:构造函数
**构造函数的任务**是初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。构造函数的名字和类名相同。和其他函数不一样的是,构造函数没有返回类型:除此之外类似于其他的函数,构造函数也有一个(可能为空的)参数列表和一个(可能为空的)函数体。类可以包含多个构造函数,和其他重载函数差不多,不同的构造函数之间必须在参数数量或参数类型上有所区别。原创 2022-08-22 10:11:29 · 429 阅读 · 0 评论 -
C++ primer 查漏补缺十:Sales_data类的设计
类的基本思想是数据抽象(data abstraction)和封装(encapsulation)。数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程(以及设计)技术。类的接口包括用户所能执行的操作:类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。封装实现了类的接口和实现的分离。封装后的类隐藏了它的实现细节,也就是说,类的用户只能使用接口而无法访问实现部分。...原创 2022-08-12 14:01:54 · 836 阅读 · 0 评论 -
C++ primer 查漏补缺九:第六章 函数
函数原创 2022-08-04 17:30:47 · 203 阅读 · 0 评论 -
C++ primer 查漏补缺八:try catch
异常类型。原创 2022-07-27 09:38:14 · 110 阅读 · 0 评论 -
C++ primer 查漏补缺七:类型转换
在C++语言中,某些类型之间有关联。如果两种类型有关联,那么当程序需要其中一种类型的运算对象时,可以用另一种关联类型的对象或值来替代。换句话说,如果两种类型可以相互转换(conversion),那么它们就是关联的。因为3.125是double类型,所以先将6转化为double类型,执行浮点型运算得到9.125再将9.125转化为int型赋值给ival。......原创 2022-07-22 16:55:43 · 1333 阅读 · 0 评论 -
C++ primer 查漏补缺六:左值和右值
4.1 章简单来说:左值可以位于赋值语句的左侧,右值不行C++ 里面这个问题比较复杂,我们结合运算符一个个看赋值运算符 : int a =1;左值作为左侧运算对象,结果是一个左值取地址符: 取地址符作用于一个左值运算对象,返回一个右值(指针)而 内置解引用 , 下标 , 迭代器解引用 , string vector的下标 求值结果都是左值内置类型和迭代器的递增递减运算符作用于左值运算对象,结果也是左值右值引用(rvalue reference): 必须绑定到右值的引用。我们通过&&而不是&来获得右值原创 2022-07-08 15:33:10 · 390 阅读 · 0 评论 -
C++ primer 查漏补缺五:字符串和向量
string::size_type 是无符号类型但是我编程的时候完全没有意识到这一点,都是用 int 型赋值的,可能会出错字符字面值字符串字面值就是C风格的字符串,和std::string不一样,不是一种类型:它是字符串放在字符数组中,并以空字符结束( ‘\0’ )我们用C风格的字符串初始化 std::string时,会把最后的空字符去掉上面直接把 C风格的字符串相加(“a” + “c”)是没有意义的,需要使用 strcpy 或 strcatstd::string 重载了 +运算符,将返回strin原创 2022-07-08 14:15:16 · 216 阅读 · 0 评论 -
C++ primer 查漏补缺四:引用
一条简单的声明语句由一个数据类型和紧随其后的一个变量名列表组成。其实更通用的描述是,一条声明语句由一个基本数据类型(base type)和紧随其后的一个声明符(declarator)列表组成。每个声明符命名了一个变量并指定该变量为与基本数据类型有关的某种类型。之前,我们所接触的声明语句中,声明符其实就是变量名,此时变量的类型也就是声明的基本数据类型。引用(reference)为对象起了另外一个名字,引用类型引用(refers to)另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变原创 2022-06-23 15:50:49 · 341 阅读 · 0 评论 -
C++ primer 查漏补缺三 :初始化
初始化: 创建变量时赋予其一个初值赋值:把对象的当前值擦除,用一个新值代替初始化的几种形式其中花括号的形式叫做 “ 列表初始化 ”当用于内置类型的变量时,这种初始化形式有一个重要特点:如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错:使用long double的值初始化int变量时可能丢失数据,所以编译器拒绝了a和b的初始化请求。其中,至少ld的小数部分会丢失掉,而且int也可能存不下ld的整数部分。如果定义变量时没有指定初值,则变量被默认初始化(default initializ原创 2022-06-22 09:28:25 · 187 阅读 · 2 评论 -
C++ primer 查漏补缺二 :无符号数
自动类型转换:当算数表达式中, 既有int又有无符号类型时,int会直接转换成无符号类型参考 机器数、真值、原码、反码和补码、大端方式 and 小端方式(数据的存储方式)计算机中的数都是一串 0 1无符号数它没有正负之分。计算机中无符号数没有原码、反码和补码。因为,无符号数在计算机中直接将数字化成二进制然后存储在对应的存储器或者寄存器中。 这时寄存器或者存储器的位数就可以表示数值的范围,通常情况下一个数占一个字节,8位二进制,则这8位二进制都可以表示数字的取值, 所以它的取值范围是0-255,其中最小的原创 2022-06-15 11:44:36 · 226 阅读 · 0 评论