C++学习记录
自己阅读C++primer的阅读笔记
康娜喵
理论与工程,性能与外表,我全都要!
展开
-
【C++学习记录】—— 【13】【语句】
语句一.简单语句1.表达式语句2.空语句3.复合语句(块)二.语句作用域三.条件语句1.if语句2.switch语句四.迭代语句1.while语句2.for语句3.范围for语句4. do while语句五.跳转语句1.break2.continue语句3.goto语句六.try语句块和异常处理1.throw表达式2.try语句块3.标准异常①exception定义的异常类②stdexcept定义的异常类③new定义的异常类④type_info定义的异常类一.简单语句1.表达式语句对一个表达式的末尾加原创 2020-09-22 12:43:57 · 113 阅读 · 0 评论 -
【C++学习记录】—— 【12】【表达式】
零.前言感觉前面那么详细的记录,导致浪费了很多时间,现在可能一篇文章记录一章的重点,所以可能会损失一些简单的信息。一.基础1.基础概念表达式是由一个或多个运算对象组成,对表达式求值,会得到一个结果,字面值和变量是最简单的表达式,用运算符把一个或多个运算式组合起来,就可以生成比较复杂的表达式。C++里有一元运算符、二元运算符、三元运算符等多种运算符,如其名,比如&、*的作用对象是一个,所以是一元运算符,而==、*这些符号作用对象是两个,所以是二元运算符。函数调用也是一种特殊的运算符。1.1原创 2020-09-18 10:18:29 · 606 阅读 · 0 评论 -
【C++学习记录】—— 【11】【字符串、向量和数组】【多维数组】
多维数组零.简介一.多维数组1.多维数组的初始化2.多维数组的下标引用3.使用范围for语句处理多维度数组4.指针和多维数组零.简介多维数组其实就是数组的数组。一般我们吧二维数组的第一个维度叫做行,第二个维度叫做列。一.多维数组1.多维数组的初始化初始化的方法有很多,比如: int a[2][3] = { {0, 1, 2}, {3, 4, 5} } int b[2][3] = {0,1,2,3,4,5,6};或者只初始化每行的首元素:原创 2020-09-13 11:07:54 · 162 阅读 · 0 评论 -
【C++学习记录】—— 【10】【字符串、向量和数组】【数组】
数组零.简介一.定义和初始化内置数组1.说明2.显式初始化数组元素3.字符数组的特殊性4.不允许拷贝赋值5.理解复杂的数组声明1零.简介数组是一种类似于vector的数据结构,但是它的大小是不能改变的,所以不能“随意”的向数组中添加元素,所以在某些特殊情况下,数组的性会比vector好。一.定义和初始化内置数组1.说明数组的声明形如a[b]其中,a是数组的名字,b是数组的维度。维度说明了数组元素的个数,所以必须大于0。因此在编译器编译的时候,它的值必须是已知的,得是常量表达式。unsigned原创 2020-09-12 17:50:50 · 205 阅读 · 0 评论 -
【C++学习记录】—— 【10】【字符串、向量和数组】【迭代器介绍】
迭代器介绍零.介绍一.使用迭代器1.说明2.迭代器运算符3.元素移动4.迭代器类型5.begin和end运算符6.结合解引用和成员访问操作7.某些对vector对象的操作会使迭代器失效二.迭代器运算1.说明零.介绍迭代器属于一种通用的机制去访问某些对象或容器里成员的值,几乎标准库里的容器都支持迭代器,而下标运算符只有几种才支持。类似于指针,迭代器提供了对对象的简介访问。迭代器有有效、无效之分。有效的迭代器指向某个元素,或者容器尾元素的下个位置;其他的所有情况都属于无效。一.使用迭代器1.说明迭原创 2020-09-11 22:27:02 · 159 阅读 · 0 评论 -
【C++学习记录】—— 【9】【字符串、向量和数组】【标准库vector】
标准库vector零.前言一.定义和初始化vector对象1.初始化2.列表初始化vector对象3.创建指定数量的元素4.值初始化5.分清{}与()零.前言标准库vector表示对象的集合,其中所有的对象类型都相同,集合中的每个对象都有一个与之对应的索引。vector也被常称作索引。如果使用vector,需要添加头文件#include <vector>和using std::vector。C++有类模板,也有函数模板,而这个vector就是个类模板。它本身不是一个类或函数,而只是一份让原创 2020-08-22 16:40:28 · 191 阅读 · 0 评论 -
【C++学习记录】—— 【8】【字符串、向量和数组】【标准库类型string】
标准库类型string零.前言一.定义和初始化string对象1.初始化例子2.直接初始化和拷贝初始化二.string对象上的操作零.前言终于到了一个C++里比较重要的一个玩意儿了,string。因为C语言对字符串非常不友好,所以有必要熟练掌握C++里的string类。本文会讲最常用的string操作,后面的第九节也会讲述其他的string操作。嗷,对了,string是std里的类型,所以我们除了#include<string>,还需要using std::string;一.定义和初始原创 2020-08-19 15:20:35 · 196 阅读 · 0 评论 -
【C++学习记录】—— 【7】【字符串、向量和数组】【命名空间的using声明】
命名空间的using声明一.命名空间的using声明1.介绍2.每个名字都需要独立的using声明一.命名空间的using声明1.介绍当我们使用域操作符::的时候,编译器会从操作符左侧名字所示的作用域中寻找右侧那个名字。当然,这种方式太繁琐,我们有两种更优化、安全的方式,这里介绍其中一种:using声明,它具有如下形式:using namespace::name;比如我们以前的std::cin就可以写成如下模式了:#include <iostream>using std::cin原创 2020-08-16 10:11:19 · 167 阅读 · 0 评论 -
【C++学习记录】—— 【6】【变量和基本类型】【自定义数据结构】
自定义数据结构零.前言一.自定义类型(struct)1.定义2.类数据成员二.使用类三.编写自己的头文件1.预处理器概述零.前言数据结构就是把一组相关的数据元素组织起来然后使用他们的策略和方法。一.自定义类型(struct)因为C++提供class来定义我们的数据结构,那是后面的重点,所以我们现在不做讨论,后面我们会详细说明。1.定义我们以关键字struct开始,紧跟着类名和类体(类体可以为空)。类体有花括号包围形成了一个新的作用域。类内部定义的名字必须唯一。但是可以与类外部的名字重复。花括号后原创 2020-08-13 20:17:31 · 197 阅读 · 0 评论 -
【C++学习记录】—— 【5】【变量和基本类型】【处理类型】
处理类型一.类型别名1.两种别名①typedef②C++别名声明2.指针、常量和类型别名二.auto类型说明符1.auto2.复合类型、常量和auto三.decltype类型1.decltype2.decltype和引用一.类型别名1.两种别名①typedef常规的typedef就是C语言中使用的,就像这样:typedef int u8;u8 time = 23;// 这里的time就是int类型②C++别名声明using u8 = int;效果与①一样,这种方法,以using别名原创 2020-08-11 21:52:10 · 351 阅读 · 0 评论 -
【C++学习记录】—— 【4】【变量和基本类型】【const限定符】
const限定符零.前言一.const的引用1.对const的引用2.初始化和对const的引用3.对const的引用可能是一个非const的对象二.指针和const1.指向常量的指针2.const指针3.顶层const四.constexpr和常量表达式1.常量表达式2.constexpr变量零.前言为了防止程序不小心改掉某个变量的值,或者说定义一个变量,用来当常数,且易修改,我们C语言推出了一个关键字const对变量的类型加以限定。而const对象一旦创建后其值就不能改变,所以const对象必须初始原创 2020-08-10 21:26:37 · 210 阅读 · 0 评论 -
【C++学习记录】—— 【3】【变量和基本类型】【复合类型】
复合类型零.前言一.引用1.介绍2.引用即别名3.引用的定义二.指针1.定义2.获取对象的地址3.指针值4.利用指针访问对象5.空指针6.赋值和指针零.前言复合类型有多重,而本篇只讲两种引用和指针。现在对于变量的声明我们可以理解为:一条声明语句有一个基本数据类型和紧随其后的一个声明符号列表组成一.引用1.介绍此处的引用,是指"左值引用",而C++里还有一种右值引用,将会在后面介绍。而应用的基本概念就是将引用和它的初始值绑定在一起,而不是把初始值拷贝给引用。且引用必须被初始化和无法再绑定到另一个原创 2020-08-08 20:19:08 · 184 阅读 · 0 评论 -
【C++学习记录】—— 【2】【变量和基本类型】【变量】
变量零.前言一.变量的定义1.简述2.初始值3.列表初始化4.默认初始化二.变量声明和定义的关系三.标识符四.名字的作用域1.作用域的嵌套零.前言变量提供一个具名的、可用程序操作的储存空间。C++中每个变量都有其数据类型。数据类型又决定了变量所占内存空间的大小、布局方式和能参与的运算等。对C++程序员来说, “变量”和“对象”可以互相使用。奇怪的对象增加了何为对象? 对象就是一块儿能储存数据并且具有某种类型的内存空间。一.变量的定义1.简述变量定义的基本形式是:类说明符,随后紧跟一个或多个变量名原创 2020-08-06 20:54:42 · 187 阅读 · 0 评论 -
【C++学习记录】—— 【1】【变量和基本类型】【基本内置类型】
2.1基本内置类型零.前言一.算数类型1.算数类型2.浮点型3.带符号类型和无符号类型二.类型转换1.类型转换2.含有无符号类型的表达式三.字面值常量1.定义2.整形和浮点类型字面值3.字符合字符串字面值4.转义序列5.指定字面值的类型6. 布尔字面值和指针字面值零.前言思来想去,由于书的排版本身就有很深的结构,而且单章跨度太大,不好写在一个博客里,所以干脆把一章里的5——8个小节分开写,单独成一篇文章。绝对不是什么水博客积分欢迎关注啊,毕竟会把一本近1000页的“圣经”浓缩成几十篇小博客QAQ然后以原创 2020-07-27 21:36:20 · 199 阅读 · 0 评论 -
【C++学习记录】—— 【0】开始
0.前言这系列博客可能会长期写下去,目的就是为了学习C++,这系列博客还是像以前的博客那样,算是我的学习记录,可能有错,希望大家参考的时候也带着批判性思维。若发现错误,也请各位大佬斧正。对了,本人有C的基础,所以有些地方,会记录的不详细。这系列参考书籍《C++Primer 第五版》1.编写一个简易的C++程序int main(){ return 0;}一个函数的定义包含四部分:返回类型、函数名、可空的形参列表和函数体。1.1编译、运行程序略过,毕竟不是重点,难不成我还写一个编译原理?原创 2020-07-25 17:41:49 · 265 阅读 · 0 评论