读c++ primer 5

C Primer Plus(第5版)中文版 1. 在声明一个简单变量和数组时使用关键字const很简单。指针则要复杂一些,因为不得不把让指针本身成为const与让指针指向的值成为const区分开来。下面的声明表明pf指向的值必须是不变的: 但pf本身的值可以改变。例如,它可以指向另一个const值。相反,下面的声明表明指针pt本身的值不可以改变: 它必须总是指向同一个地址,但所指向的值可以改变。最后,下面的声明: 《C Primer Pl 阅读详情

作为一个非科班的码农,有时候会有种力不从心的感觉,说到底还是基础不牢固,很多印象很模糊,万丈高楼平地起,希望自己切勿好高骛远,趁着这段时间,总结一下自己掌握得还不够深刻的知识点。

一、引用

1、引用并非为对象,它只是为对象取了另外一个名字。定义了一个引用后,对其所进行的所有操作,都是在与之绑定的对象上进行的。

2、引用必须初始化,一旦定义了引用,就无法令其再绑定到另外的对象。

3、每个引用标识符都必须以符号&开头。

二、指针和引用的不同点

1、指针本身就是对象,但是引用不是

2、允许对指针再次赋值和拷贝,并且指针的生命周期内,它可以先后指向不同的对象。

3、指针无须在定义的时候赋初值,但会拥有一个不确定的值。

三、指针和const

const int p = 1;  //p是常量,它的值不可改变

int *ptr=&p; //错误 ptr是一个普通指针,不可指向常量

const int *cptr=&p; //正确

*cptr=5; //错误,不能给*ptr赋值

int a=65;

cptr=&a; //正确 但是不能通过cptr改变a的值

int b=0;

int *const p1=&b; //不能改变p1的值,这是一个顶层const

const int c=42;

const int *p2=&c; //允许改变p2的值,因为这是一个底层const

顶层const表示指针本身是个常量。

底层const表示指针指向的对象是常量。

const int * const p3 =p2; //靠右的const是顶层const  靠左的const是底层const

int &r=c; //错误

p2=&b; //正确 int*能转换为const int *

四、c++ 11 auto

自动类型推算,必须有初始值。

五、显示转换

static_cast:

1、任何有明确定义的类型转换,只要不包含底层const,都可以使用static_cast

2、当需要把一个较大的算术类型赋值给较小的类型时,static_cast非常有用。可以消除警告信息。

3、对于编译器无法自动执行的类型,使用static_cast。

double b=1.00; void *p=&b;

double*dp=static_cast<double*>(p);

const_cast:

const_cast只能改变运算对象的底层const。

const char*p;

char *p=const_cast<char*>(p);

六、函数

局部静态对象:

在程序中执行路径第一次,经过对象定义的语句时初始化,并且到程序终止时才能销毁。

在此期间,即使对象所在的函数结束执行,也不会对它有影响。

size_t func()

{

static size_t cnt=0; //调用函数结束后,这个值仍然有效

return ++cnt;

}

引用参数:

1、使用引用避免拷贝,提高效率。当函数无须修改引用形参的值时,最好使用常量引用

2、使用引用形参返回额外的信息。

3、不要返回局部对象的引用或者指针

4、通过引用返回左值。

函数指针:

函数指针返回函数而不是对象,和其他指针一样,函数指针指向某种特定类型。

bool (&p)(const string&,const string &) //p 指向函数的指针

七、类

1、在c++中class 与struct的唯一区别:

默认访问权限不同。class默认private,struct默认public

2、类成员的初始化顺序与它们在类定义中出现的顺序一致

3、类的静态成员存在于任何对象之外。对象中不包含任何与静态数据成员有关的数据。类的静态成员被所有类对象共享。

可以通过作用域运算符直接访问静态成员。double r; r=A::func(); //假定func是一个静态成员函数,返回值为double。

虽然静态成员不属于类的某个对象,但我们仍然可以使用类的对象、引用、指针等访问静态成员。

4、类似于全局变量。静态数据成员定义在任何函数之外。因为他一旦被定义,就一直存在于程序的整个生命周期。

八、容器

顺序容器:

vector

可变大小数组,支持快速随机访问,在尾部插入或者删除元素可能很慢。

array

固定大小数组。支持快速随机访问,不能添加或者删除元素。

list

双向链表,只支持双向顺序访问,在list中任何位置进行插入、删除操作,速度都很快

forward_list

单向链表,只支持单向顺序访问,在链表任何位置插入、删除都快。

deque

双端队列,支持快速随机访问。在头尾位置插入或者删除,速度很快。

string

与vector相似容器,但是专门用于保存字符,随机访问很快。

关联容器:

map

关联数组:保存关键字-值对

set

关键字即值:即只保存关键字容器

multimap

关键字可以重复出现的map

multiset

关键字可以重复出现的set

map中添加元素的4种方法:

m.insert((word,1));

m.insert(makepair(word,1));

m.insert(pair<string,size_t>(word,1));

m.insert(map<string,size_t>::value_type(word,1));

九、动态内存

智能指针:

自动释放所指向的对象。

1、shared_ptr: shared_ptr<int>p;

允许多个指针指向同一对象。

2、unique_ptr

独占所指向的对象,当unique_ptr被销毁时,其所指向的对象也被销毁。

可以用reset来将一个新指针赋予一个shared_ptr

p=new int(1024); //错误,不能将一个指针赋予shared_ptr

p.reset(new int(1024)); //正确

reset会更新引用计数,如果需要,会释放p所指向的对象。

 

C Primer Plus (第五版) 第五章 编程练习 答案 C Primer Plus (第五版) 编程练习 答案 阅读详情

相关推荐

C++Primer第五版 习题答案 目录

C++Primer第五版 习题答案 本文当作我学习C++的一个记录,这里的习题答案并不是标准答案,仅仅是我的理解,如有错误,请大家指出,谢谢! 我参考的文章会在文末列出,谢谢大家。 第一章 ...

shamozhizhoutx的博客 5万+

C++ Primer 5 涵盖新的C++特性

今天从ITPUB的一个帖子(单击打开)下载了PDF和 EPUB的 C++ Primer 5(2012-08发售,就被D版,先为 Lippman 默哀),躺着口水看了一晚上,还是觉得很棒的!! PDF质量不说了,内容更是很好!不是把原版直接增加一章就算了,而是把 C++11的新特性贯通到内容中去了,整体性很强。 回忆起看C++primer 第3、4版的时候,还在读书,抱着现在已经死翘翘的...

丁劲犇技术发布空间 2万+

C++primer plus和C++ primer的读书心得

C++两本巨著primer plus和primer太过于经典,以至于读过多次,每次阅读仍然有新的收获,所以将一些零碎的知识点整理在这里,与大家共同进步。 1.i++与++i的效率比较: 前缀效率高,后缀在递增前需要一个副本。 ...

weixin_40548480的博客 3108

C Primer Plus(中文版)(第5版)电子书pdf下载

C Primer Plus(中文版)(第5版)下载链接: https://pan.baidu.com/s/1y8hkz2XFdmXEpVs-a0gkJQ 提取码获取方式:关注下面微信公众号,回复关键字: 1140

欢迎关注微信公众号:DroidMind 3万+

C++Primer第五版——习题答案+详解(完整版)

C++Primer第五版——习题答案详解 看的也比较快,但是有很多东西确实用不上,所以很多都没有深入的探讨,但是知识点覆盖的很全面,每一道题涉及的知识点我都写上简单的解释了。 文中代码的中文注释也尽量都写上,自己皆编译通过。 水平有限,如有有误之处,希望大家不吝指教! 下面的链接是 第一章:全部题目(第一章基础较多)http:/

MISAYAONE的博客 34万+

Xilinx SDK调试与FPGA硬件验证全流程解析

本文详细解析了从Vivado导出硬件到Xilinx SDK进行调试与FPGA硬件验证的全流程。重点阐述了正确导出包含bitstream的硬件平台、创建合适的SDK工程、配置Debug会话以编程FPGA,并介绍了串口验证、自定义IP测试以及使用ILA进行软硬件联合调试的高级技巧,帮助开发者高效完成FPGA系统的软硬件协同开发与问题排查。

weixin_28327051的博客 309

C++ primer 5th 读完的一点心得体会

作为一个通信的研究生,其实我对自己所从事的方向还是有很多迷茫的。本科的时候参加过很多比赛,搞过单片机、ARM嵌入式,做过信号处理,学过matlab,学过C、C++,但是始终觉得自己浮于表面,并没有一种深入的感觉。好比我做了一个四旋翼飞行器,我知道它的控制原理,我花足够多的时间也能看明白它里面的每一个函数,我也可以对这个开源的飞控做适当的修改,但是也就仅此而已了,如果让我自己从无到有的搭建这样一个庞

King_DJF的博客 2874

陀螺仪与加速度计的姿态融合——互补滤波

本篇文章我们来讲讲如何将陀螺仪和加速度计的数据结合起来,获取更准确的姿态数据,使用的是互补滤波的方法。

小白白学电子 2万+

GetQzonehistory:把十年QQ空间历史说说完整导出,Excel和网页一次拿全

GetQzonehistory 是一个本地运行的 Python 小工具,用来把你 QQ 空间发过的历史说说完整抓取下来,导出成 Excel 表格和一个还原空间样式的网页文件,长期存在自己的硬盘里。适合说说发得多、想把这些旧记录完整存档的人。 ## 先说结果:跑完之后你会得到什么 程序跑完后会自动打开 `resource/result/你的QQ号/` 这个文件夹,里面是一套完整的东西: | 产

gitblog_00301的博客 631

AutoCAD 2024 Mac版安装激活教程:从下载到破解一站式解决方案

本文提供AutoCAD 2024 Mac版的详细安装与优化指南,包括系统要求检查、下载安装流程、常见问题解决方案及性能优化设置。特别介绍了如何应用最新补丁和Update保持软件性能,帮助用户顺利完成从安装到破解的全过程。

weixin_29239661的博客 837

GD32F303 ADC+DMA实战:用硬件过采样搞定多通道数据采集(附完整代码)

本文详细介绍了GD32F303系列MCU通过ADC+DMA结合硬件过采样技术实现多通道数据采集的实战方案。从硬件设计要点到软件配置全解析,包括时钟树配置、ADC模块初始化和DMA传输设置,提供了完整的代码示例和优化技巧,帮助工程师构建高精度、低功耗的数据采集系统。

weixin_30466039的博客 318

掌握C++模板编程:Cpp-Primer-5th-Exercises第16章实战指南

C++模板编程是C++ Primer第5版第16章的核心内容,也是提升C++编程能力的关键技能。通过Cpp-Primer-5th-Exercises项目中的实战练习,你将系统掌握模板类、函数模板、模板特化等核心概念,轻松应对复杂的泛型编程挑战。 ## 为什么模板编程是C++开发者的必备技能 🚀 模板是C++实现泛型编程的基础,它允许你编写与类型无关的代码,大幅提高代码复用性和灵活性。在标准库

gitblog_00320的博客 935

PCB布线避坑指南:晶振布局的5个致命错误(附正确示例图)

本文深入解析PCB布线中晶振布局的5个致命错误,包括底层布线、电容布局、地平面处理等关键问题,并提供实战解决方案。通过真实案例和量化数据,帮助硬件开发者避免常见陷阱,提升电路稳定性和性能。特别针对晶振这一高敏感元件,给出布线参数黄金法则和三维避让原则。

weixin_29215391的博客 428

快速上手Cpp-Primer-5th-Exercises:新手必备的C++练习指南 [特殊字符]

想要系统学习C++编程语言,但面对《C++ Primer》这本经典教材的练习题感到无从下手?别担心!Cpp-Primer-5th-Exercises项目为你提供了完整的练习解答,帮助你快速掌握C++编程的核心概念和技巧。这份终极指南将带你深入了解这个宝贵的C++学习资源,让你在编程学习道路上事半功倍! ## 📚 项目简介:你的C++学习好帮手 Cpp-Primer-5th-Exercises

gitblog_01075的博客 1074

YOLO11训练中的过拟合识别与应对策略:讲解过拟合的表现、原因及应对方法(如数据增强、正则化、DropOut)

摘要 本文深入探讨了YOLO11目标检测模型中的过拟合问题。首先解析了过拟合的本质,即模型在训练数据上表现优异但泛化能力差的现象,并通过误差分解公式解释了其数学原理。文章详细列举了YOLO11中过拟合的具体表现,包括训练与验证指标分化、检测性能不一致性、置信度分布异常和类别检测不均衡等问题,并提供了对应的可视化诊断方法。 在原因分析部分,重点阐述了模型复杂度与数据规模不匹配、训练数据质量与分布问题以及训练策略不当三大根本原因。特别对比了YOLO11不同版本(n/s/m/l/x)的参数量和推荐最小数据量,指出

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 242

34、量子概率幅世界与相关操作解析

本文详细解析了量子概率幅的概念及其在量子力学中的核心作用,介绍了量子态的表示方法与叠加原理,讨论了幺正操作在量子演化中的重要性,并阐述了量子测量的基本原理与影响。此外,文章还分析了量子系统在量子计算中的应用,包括干涉在量子算法中的作用、量子门的组合使用以及量子测量的关键地位,总结了量子系统的独特特性与面临的挑战,展望了量子计算的未来发展趋势。

pytorch8learner的博客 175

Node-RED 数据处理实战手册:JSON、XML、CSV 的互转与排错

Node-RED 的数据处理,主要靠核心解析器里的一组节点完成:JSON、XML、CSV(还有 HTML、YAML),它们能把 msg 里的字符串、对象和表格数据互相转换。这篇文章不按"技巧清单"罗列,而是跟着一条数据在流程里走完全程:怎么从字符串变成对象,怎么在 XML 和 CSV 之间互转,字段对不上或坏消息出现时怎么办,最后再看怎么提速。 ## 数据入口:三步把 JSON 字符串解析成对象

gitblog_00964的博客 1058

6、基于深度强化学习的无人机路径规划

本文介绍了一种结合人工势场法的改进DQN深度强化学习算法在无人机路径规划中的应用。通过设计合理的网络结构、状态空间、动作空间和融合引力-斥力机制的奖励函数,实现了无人机在复杂环境中的自主避障与目标导向飞行。采用轻量级神经网络提升实时性,并在Gazebo仿真环境中进行训练与测试,结果表明该算法具有快速收敛、高成功率和良好适应性。实验评估指标包括损失函数、最大Q值和任务成功率,验证了方法的有效性。文章还探讨了其在物流配送、农业植保和环境监测等领域的应用前景,并展望了多无人机协同与复杂环境适应性等未来研究方向。

html8的博客 238

TeamAI 自动同步揭秘:AI 会话如何静默获取团队最新资源的完整指南

TeamAI 是一款开源的 AI 团队资源管理 CLI 工具(teamai-cli),它的自动同步机制可以让 Claude Code、Codex、Cursor 等 AI 助手在**每次会话启动时静默拉取团队最新的技能、规则与知识**,全程无需人工干预。本文带你彻底搞懂这套机制背后的原理。✨ ## 什么是 TeamAI 自动同步? 想象这样一个场景:管理员更新了团队的编码规则,昨天还有效的技能今

gitblog_01132的博客 993

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

如何快速预览 3D 模型:轻量级 3D 工具 F3D 三维查看器完整指南

F3D三维查看器是一款免费、开源的轻量级 3D 工具,支持 Windows、macOS 和 Linux 三个平台,只做一件事:把 3D 模型文件快速打开并实时预览。如果你经常需要查看 GLTF、STL 等模型文件,或者想在一分钟内确认模型的形状、材质和动画状态,它就是适合做 3D 模型预览的工具。设计师、开发者和内容创作者都适用,安装即用,不需要复杂配置。 ## 三步打开你的第一个 3D 模型

gitblog_00927的博客 1026

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C++primer、Effective C++应该怎么读,如何读?

导读 刚开始C++的学习肯定就是拿起书就开始读,读了一会就放下就干别的,带最后没翻过几页。下面我就说一下,我是怎么读的,我大概一个暑假就把这两本读完了。 C++ primer 计划 有人听到计划可能退缩了,计划都是骗人的,都是假的。我的计划有点和别人不一样。听我细细道来。 首先我规定自己一天必须读完一章。这一章不管大小(当然后面的泛型或者虚函数的地方可以规定半章一天)。大家不用分的太细,几点到几点...

曲怪曲怪 1884

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Cpp-Primer-5th-Exercises项目揭秘:从基础语法到高级特性的完整路径

你是否正在学习C++编程语言,却被《C++ Primer》第五版中的复杂习题困扰?😅 别担心,Cpp-Primer-5th-Exercises项目为你提供了完整的习题解答指南!这个开源项目包含了《C++ Primer》第五版所有章节的习题解答,从基础语法到高级特性,为你搭建了一条清晰的学习路径。无论你是C++初学者还是希望巩固知识的开发者,这个项目都是你学习路上的得力助手。 ## 📚 项目概

gitblog_00578的博客 846

谈谈怎样读《C++primer 3、4两版》

谈谈怎样读《C++primer 3、4两版》 C++primer是公认的经典著作,网上一些常见提法我觉得容易误导真正的初学者,对此我心中很不安。我是一个老汉,64岁了,编过10年的程序,讲过14年的C、C++、和软件工程。我要诚实地告诉青年朋友们,我并没有详细地阅读这两本书,仅仅是浏览而已,按说无资格发言,但是我仍然忍不住要对年轻人说几句,不妥之处在所难免,欢迎大家指正。 首先我要表达

chenshuzhenteacher的专栏 3986

青龙面板 + QLScriptPublic 指南:如何 5 分钟部署一套 100+ 的自动化签到脚本

早上九点的电梯里、通勤地铁上、午休的工位前——你大概也有过这样的时刻:手机里躺着一二十个 App 和小程序,每个都藏着"每日签到""积分任务""浏览赚金币",手动点一遍少说十几分钟,隔天再点又是一遍,漏一天还断了连续签到。QLScriptPublic 配合青龙面板做的,就是把这类重复劳动交给脚本定时执行:你只负责把账号信息填一次,剩下的交给 cron。这个仓库目前收拢了 100 多个可用脚本,覆盖

gitblog_00937的博客 915

[阶段总结]写在C++ Primer Plus后,C++ Primer前

这篇总结分为三个部分一、总结这半年的学习生活情况。二、总结学习C++ Primer Plus的一些收获三、展望一下接下来半年应该如何开展学习工作Ⅰ前半年的学习生活1.参加了一次网易游戏探营活动,认识了司虎虎等众多大神,并与其相互关注了github。2.参加了一次华为软件精英挑战赛,从中学到了很多有用的团队合作的知识。3.参加了学校的摄影公选课,除了课上的外拍,自己还进行了2次外拍活动。无论是拍摄水...

xy_cpp的博客 9906

Lucky零代码对接点灯科技与巴法云:语音助手唤醒关机设备

喊一句"唤醒电脑",客厅主机就嗡地启动,不用拔插电源线,不用写一行代码。这是在 Lucky 这款软硬路由公网神器里花 5 分钟配置,对接点灯科技或巴法云,就能让语音助手替你开关设备的体验。 ## 场景速览 连上之后你能做到: - 说一句"把电脑叫醒",休眠的主机自动开机 - 手机在平台 App 里远程下发指令,设备状态实时同步 - 设备不在同一局域网,也能通过中继客户端唤醒 ## 原理一张

gitblog_00456的博客 376
上一篇: 使用SecureCRT连接Ubuntu
下一篇: 平时写c++程序需要注意什么
Qt上位机开发
Qt上位机开发 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄9年 9664粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值