![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
跟我一起从C到C++
文章平均质量分 96
电子宁采臣
3811
展开
-
顺序容器(下)——跟我一起从C到C++(第十一期)
我们可以用一个容器来初始化一个新的适配器,deq };默认情况下,stack和queue是基于deque实现的,是在vector之上实现的。//用vector构造的类型为string的适配器str_stk vector < string > svec;对于一个给定的适配器,可以使用哪些容器是受到限制的,所有适配器都要求容器具有添加和删除元素的功能。因此,适配器不能构造在array之上。类似的,我们也不能用来构造适配器,因为所有适配器都要有添加、删除以及访问尾元素的能力。原创 2023-02-27 16:35:20 · 278 阅读 · 2 评论 -
顺序容器(上)——跟我一起从C到C++(第十期)
typeoverviewvector可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。deque双端队列。支持快速随机访问。在头尾位置插入或者删除元素很快。list双向链表。仅支持双向顺序访问。在list中任何位置进行插入或者删除操作速度很快。单向链表。仅支持单向顺序访问。在链表任何位置进行插入或者删除操作速度很快。array固定大小数组。支持快速随机访问。不能添加或删除元素。string与vector相似的容器,但专门用于字符保存。随机速度快。在尾部插入或者删除速度快。原创 2023-02-25 14:56:57 · 295 阅读 · 0 评论 -
IO库——跟我一起从C到C++(第九期)
(接下来的故事,笔者也要开始自学了,但为了保证该内容的严谨和真实,笔者也会在其中掺杂一部分的超链接,帮助大家定位到资料原文)比如,刚刚我们读取电话号的例子,我们想在逐个验证电话号时并改变其格式,如果所有号码都有效的,我们希望输出一个新文件,包含改变格式之后的号码,对于无效的号码,我们就打印一条包含人名和无效号码的错误信息。一旦文件成功关闭,我们可以打开新的文件。(继承机制笔者将会在之后的章节介绍,简单来说,继承机制就能使我们可以声明一个特定的类继承另一个类,从而得到它的部分功能和部分成员),同样的,类型。原创 2023-02-07 14:29:06 · 203 阅读 · 0 评论 -
类(下)——跟我一起从C到C++(第八期)
一个类就是一个作用域的事实能够很好地理解为什么当我们在类的外部定义成员函数时必须提供类名和函数名。返回类型出现在类名之前,它并没有被编译器划分到类的作用域之中。public ://省略 };首先,在成员函数内查找该名字的声明。如果成员函数内没有找到,则在类内寻找(类的所有成员都可以被考虑)。如果类内也没有找到该名字的声明,在成员函数定义之前的作用域内继续查找。一般来说,不建议把其他成员的名字作为某个成员函数的参数。原创 2023-02-05 18:46:10 · 91 阅读 · 0 评论 -
类(中)——跟我一起从C到C++(第七期)
我们定义一个Screen类,让Screen表示显示器的一个窗口。每个Screen包含一个用于保存Screen内容的string成员和三个类型的成员,分别表示光标的位置以及屏幕高和宽。public :private :这里类型别名了一个pos,也可以写成我们便知道了,除了定义数据和函数之外,类也可以自定义某种类型在类中的别名。这个别名也遵循访问限制。还有就是,用来定义类型的成员必须先定义后使用,这一点和普通成员有所区别。因此,类型成员通常出现在类开始的地方。原创 2023-02-03 14:39:19 · 91 阅读 · 0 评论 -
类(上)——跟我一起从C到C++(第六期)
按照刚刚学习到的小知识,我们来设计一个类Sales_data一个id成员函数,返回书的编号一个combine成员函数,用于把一个Sales_data对象加到另一个对象上一个名为add的函数,执行两个Sales_data对象的加法一个名为read的函数,将数据从istream读入Sales_data对象中一个名为print的函数,将Sales_data对象的值输入到ostream相必朋友们已经迷惑重重了,这个,但这个成员函数id是怎么获得数据成员bookNo所依赖的对象的呢?这个奇怪的。原创 2023-02-01 22:20:04 · 168 阅读 · 0 评论 -
函数(下)——跟我一起从C到C++(第五期)
如果同一作用域内的几个函数名字相同但形参列表不同,我们就称之为重载函数。if(cp) //非空指针 while(* cp) //不为空字符 cout原创 2023-01-31 16:10:00 · 109 阅读 · 0 评论 -
函数(上)——跟我一起从C到C++(第四期)
多维数组就是数组的数组嘛,而数组传递的是指向数组首元素的指针,故多维数组传递的是一个指向数组的指针。C++语言允许变量定义成数组的引用,基于同样的道理,形参也可以是数组的引用。为了能编写能够处理不同数量实参的函数,C++新标准提供了两种主要的方法:如果所有的实参类型相同,可以传递一个名为。任何函数的定义都能使用尾置返回,但这种形式对于返回类型比较复杂的函数最有效,比如返回数组的指针或引用。形参的初始化的机理和变量初始化差不多,每次调用函数时,都会重新创建它的形参,并用传入的实参来初始化。原创 2023-01-30 19:36:12 · 122 阅读 · 0 评论 -
表达式和语句——跟我一起从C到C++(第三期)
(这会引起程序崩溃)一个左值表达式的求值结果是一个对象或者一个函数,然而以常量对象为代表的某些左值实际上不能作为赋值语句的左侧运算对象。在复杂的系统中,程序在遇到抛出异常的代码前,其执行路径就已经经过了一个又一个的try语句块了。不过,与新版本的强制类型转换相比,旧式的强制类型转换从表现形式上来说,不是那么清晰明了,容易看漏,所以一旦转换过程中出现了问题,追踪起来也比较困难。我们使用重载运算符时,其包括的运算对象类型、返回值类型都是自定义的,但运算的个数、运算符的优先级、结合律都是无法定义的。原创 2023-01-28 18:43:17 · 260 阅读 · 0 评论 -
标准库类型——跟我一起从C到C++(第二期)
初始化vector对象的方法很多,以int//空的vector,执行默认初始化 vector < int > v2(v1);//包含v1所有元素的副本 //等于 vector v2 = v1;//v3里有5个元素,值都为1 vector < int > v4(5);//v4里有5个元素,都执行了值默认初始化 vector < int > v5 {//v5里有5个元素,值分别是1-5 //等于 vector v5 = {1,2,3,4,5};原创 2023-01-27 16:52:07 · 167 阅读 · 0 评论 -
变量和基本类型——跟我一起从C到C++(第一期)
众所周知,C语言对于嵌入式可谓是十分贴近,运行效率非常之高。但随着单片机性能的日益提升,单片机性能过剩,我们也开始渴望使用高级语言来使我们的开发更加高效(但相应也会降低单片机的运行效率和占用更大的空间)。本笔记主要意在从C语言过渡到C++语言,介绍C++语言的冰山一角,但也不只是将C++运用在嵌入式这么简单,而是过一遍语言框架。故,笔者留下此笔记和大家共同学习。此笔记大量参考互联网各种资料,笔者只是拾人牙慧的小屁孩而已。原创 2023-01-26 15:00:00 · 185 阅读 · 0 评论