C++零碎知识点记录

2024-06-04 10:32
文章标签 c++ 知识点 记录 零碎

本文主要是介绍C++零碎知识点记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


索引:
1、Forward Declaration前置声明
2、list容器
3、关于*号和&号

1、Forward Declaration前置声明
今天看源码,看到了这个forward declaration 的注释,
namespace TUIO {
class OscReceiver; // Forward declaration

就不太明白什么叫做前置声明。
现在先不太去想这个具体的,只需要知道可以在Effective C++ 里的标准31条里可以看到具体的解释。
这里就先理解为,为了减少依赖,减少头文件的导入,总而言之就是对比较大型的程序,比较好的设计方式。但注意不是所有的都可以用前置声明。

下一次遇到的时候再做补充。




2、list容器
什么是容器?
一个容器就是一些特定类型对象的集合。
list容器
list容器是顺序容器的一种,是C++标准库里的内容。在C++ Primer p292页可以看到详细的解释。
list是双向链表,只支持双向顺序访问,在链表任何位置进行插入\删除操作速度都很快,作为代价,list容器不能进行元素的随机访问,为了访问一个元素只能遍历整个容器。
通常,如果程序要求在容器的中间插入或删除元素,应使用list或forward_list。




3、关于*号和&号
关于*号和&号的问题真的是说一百遍我都记不住。

&随类型名一起出现是声明的一部分,是引用 如 int b; int& rb = b; //rb是变量b的引用,就是别名的意思。

&随表达式出现,是取地址符。如 int a = 0; int *p = &a;//把a的地址给指针p,p指向a的地址。

*在声明中为指针。如 int *p; 这里定义了一个int类型的指针p。

在表达式中出现是解引用符。 如int ival = 42;  int *p = &ival;  cout << *p;//由符号*得到指针p所指的对象,输出42.  *p = 0;//由符号*获得指针p所指的对象,即可经由p为变量ival赋值。  cout << *p;//输出0

这篇关于C++零碎知识点记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029827

相关文章

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

C++ Primer 标准库vector示例详解

《C++Primer标准库vector示例详解》该文章主要介绍了C++标准库中的vector类型,包括其定义、初始化、成员函数以及常见操作,文章详细解释了如何使用vector来存储和操作对象集合,... 目录3.3标准库Vector定义和初始化vector对象通列表初始化vector对象创建指定数量的元素值

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定