c++面试知识点-------------(一)

C/C++经典面试题(一)——常考知识点(持续更新) 文章目录前言1、引用和指针有什么区别?2、explicit(显示)关键字3、inline 内联函数4、经典面试题之new和malloc的区别5、static关键字有什么作用? 前言 1、引用和指针有什么区别? 答案链接:https://blog.youkuaiyun.com/qq_43247439/article/details/106467420 2、explicit(显示)关键字 答案链接:https://blog.youkuaiyun.com/qq_43247439/article/details/106848752 3、i 阅读详情

c++面试知识点-------------(一)

  • 数组名是指针常量不可以改变
  • 右移运算正数高位补零,负数高位补1

vector的resize和reserve的区别?

在vector中size()和capacity()属性分别对应着resize(size_type)和reserve(size_type)这两个方法。

  • size: 表示实际容器中保存元素的个数
  • capaciy: 表示在发生重新分配之前允许存放多少元素

resize 对某个vector容器调用resize方法会在该容器尾部添加或删除一些元素,使容器达到指定的大小

reserve 对某个vector容器调用reserve方法仅仅设置capacity这个值

reserve(size_type)只是改变了capaciy的值,此时这些内存空间可能还是==“野”的。如果使用[]操作符进行访问,可能出现数组越界==问题。

如果有大量的数据需要进行push_back,应当使用reserve()函数提前设定其容量大小,否则会出现许多次容量扩充操作,导致效率低下.

这是vector的一个好处它的capacity()机制减少了内存分配的次数。等于说resize()还替我们做了reserve()的事。

vector的[]索引和at的区别?

访问字符串中的字符

可以使用==[]或者at()==方法来访问字符串中的字符,起始索引是0.最大有效索引是string.length()-1.(特别的,如果是const string类型的对象,那么最大有效索引是string.length(),最后一个字符是'\0’.)

[]和at()的区别在于[]不检查索引是否有效,而at()在遇到无效索引时会抛出out_of_range异常.

构造函数可以为虚函数吗?

答案: 不能

1)因为创建一个对象时需要确定对象的类型,而虚函数是在运行时确定其类型的。而在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型,是类本身还是类的派生类等等

2)虚函数的调用需要虚函数表指针,而该指针存放在对象的内存空间中;若构造函数声明为虚函数,那么由于对象还未创建,还没有内存空间,更没有虚函数表地址用来调用虚函数即构造函数了

手写链表结构

* struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };

关键点,最后有个分号,结构体里面也用的是分号

虚函数的机制

虚函数是用来实现动态多态的;

虚函数的声明是在函数的前面加上关键字virtual。

而多态的实现是依赖虚函数表和虚表指针。

只要类里面有虚函数,那么这个类就会有虚表,虚表的确定是在编译阶段的时候确定的,所有类的对象都是共用一份虚表,所有声明虚函数会增大开销。

虚表里面放的是虚函数的地址,,对象构造的十号拥有虚表的对象会拥有一个虚指针,这个指针会指向虚表。如果派生类继承基类,且重写了基类的虚函数的方法那么派生类虚表会更新虚函数的地址变成自己虚函数的地址。虚表指针是属于基类的,所以可以调用虚函数的时候,先通过虚表指针找到对应的虚表,再进行函数的调用,实现动态绑定

链接

了解const的作用吗

C++const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。

  • const 修饰常量便是不可以更改 eg const int a =5;
  • const 修饰指针变量
A: const 修饰指针指向的内容,则内容为不可变量。   const int * p = 5;
B: const 修饰指针,则指针为不可变量。 		  int * const p = &a
C: const 修饰指针和指针指向的内容,则指针和指针指向的内容都为不可变量。const int * const p = &a
  • const 修饰函数参数和返回值
修饰按值或者按引用传递的参数时候,表示不能修改内容
修饰指针时候可以防止指针被篡改
const 修饰内置类型的返回值,修饰与不修饰返回值作用一样。
const 修饰自定义类型的作为返回值,此时返回的值不能作为左值使用,既不能被赋值,也不能被修改。
const 修饰返回的指针或者引用,是否返回一个指向 const 的指针,取决于我们想让用户干什么。
  • const 修饰函数的时候

    const 修饰类成员函数,其目的**是防止成员函数修改被调用对象的值**,如果我们不想修改一个调用对象的值,所有的成员函数都应当声明为 const 成员函数。
    
    注意:**const 关键字不能与 static 关键字同时使用,因为 static 关键字修饰静态成员函数,静态成员函数不含有 this 指针,即不能实例化,const 成员函数必须具体到某一实例。**
    
基于 Arduino 的鱼缸水质检测控制系统设计 本系统通过多传感器实时采集鱼缸水质参数(pH 值、温度、溶解氧、浊度),经 Arduino 主控芯片处理后,驱动执行模块自动调节水质,并通过显示模块实时展示数据。系统具备阈值报警、自动换水、温度调节、增氧等功能,适用于家庭或小型水族箱的水质智能管理。本设计提供了低成本、易扩展的鱼缸水质管理方案,适用于家庭水族箱或小型水产养殖场景,可根据实际需求调整传感器类型和控制逻辑。注:本设计如有疑问需要解惑可直接私信本人,看我个人简介。 阅读详情

相关推荐

【光学仿真】基于Matlab的LG/BG/PV/HG光束生成与特性分析【附完整源码】

本文详细介绍了如何使用Matlab进行拉盖尔-高斯(LG)、贝塞尔-高斯(BG)、完美涡旋(PV)和厄米-高斯(HG)四种特殊光束的仿真与特性分析。通过提供完整的Matlab源码,手把手指导读者生成光束、分析其强度、相位、传播特性及轨道角动量,为光学研究、激光应用及教学提供了直观高效的数值实验平台。

3a9bq4r8t2y的博客 492

C/C++面试知识点总结(一)

目录: 一、基础知识 1.C/C++基础 2.STL基础3.数据结构与算法基础 4.计算机网络基础5.操作系统基础6.数据库基础二、深入底层原理1.STL各种容器的底层实现2.各种经典树的原理以及实现 3.计算机网络深入4.操作系统深入5.数据库深入三、项目经历 1.纯属个人YY 一、基础知识 1.C/

_ACME_的博客 4万+

STMCubeMX使用TB6612驱动编码轮并进行测速

TB6612电机驱动模块通过IN1和IN2引脚控制电机的旋转方向,并通过PWM信号的占空比调节电机速度。代码示例展示了如何使用GPIO控制电机的正反转,以及如何动态调整PWM占空比实现速度控制。系统设计中,TB6612与编码减速电机连接,STM32CubeMX用于初始化GPIO和PWM输出。编码器接口配置使用TIM3进行测速,TIM4定时器用于速度计算。Keil软件中编写的代码包括编码轮计数值获取、速度计算、电机正反转控制以及小车运动控制等功能。通过OLED显示速度,并实现电机的调试与测试。

wwivn的博客 2262

C++面试知识点(一)

可以使用std::atomic修饰基本类型,它通过CPU提供的原子指令来实现这些不可分割的操作,现在CPU会提供一组指令,比如CMPXCHG,XADD等原子操作的读或写,虽然在某些场景下可以替代锁,比如一些基本的计算器或标志位,但复杂场景下锁还是较优选择。虚函数的机制依赖于虚函数表,而虚函数表的建立需要在调用构造函数之后才能完成,如果为虚函数会导致对象初始化(明确对象的类型)和多态机制矛盾(对象类型在构造时尚未确定。它的主要目的是实现高效的参数传递,以保持参数的值类别(左值或右值),并避免不必要的拷贝。

dingyahui的博客 1440

Zynq 双核AMP 通信

4、配置离线编译(这里不讲),配置linux的内核地址空间(0x4000_0000改为0x2000_0000),以及单核启动。CPU1设置为0x2000_0000~0x3FFF_FFFF(也可以小于0x3FFF_FFFF)如果禁用CPU1的L2 cache,在CPU1的bsp里面添加编译时候所需要的宏。3、配置工程,将vivado产生的.xsa文件复制到amp_com项目目录下。9、使用petalinux-package --boot 打包。一、vivado工程。5、编译u-boot。

y183128184的博客 1088

手把手教你用支付宝密钥工具生成RSA2密钥对(含Windows/Mac操作截图)

本文详细介绍了如何使用支付宝密钥工具生成RSA2密钥对,包括Windows和Mac平台的操作步骤与截图。从工具下载、安装到密钥生成、配置支付宝平台,再到开发环境集成实战,手把手教你完成支付宝支付接口对接。特别强调密钥安全管理和最佳实践,帮助开发者避免常见安全隐患。

mongodb5scout的博客 257

C++面试高频知识点(一)

C++1.const关键字2.static关键字3.this指针4.Inline内联函数虚函数可以是内联函数吗?5.volatile关键字mutableexplicit6.asset7.extern8.C++中struct与class区别9.面向对象1.封装2.继承3.多态4.虚函数、纯虚函数5.虚析构函数6.虚表指针、虚函数表6.虚指针、虚函数表7.虚继承8.构造函数可以是虚函数吗10.C++ 内存空间布局11.new/delete, malloc/free12.内存对齐1.类的对象存储空间2.为什么要内

AA Blog 1222

联邦学习中的差分隐私保护详解及python实现

随着数据隐私法规(如 GDPR、CCPA)日益严格,传统将数据集中到云端训练模型的方式面临合规与安全风险。联邦学习通过让各客户端保留本地数据,仅共享模型更新,缓解了数据流动带来的隐私风险。但模型更新仍可能泄露个体信息。为进一步保障隐私,可在本地更新中引入差分隐私(DP)机制,通过向梯度或模型更新中注入随机噪声,防止反向推断原始数据citeturn0search9。

闲人编程的博客 1921

面试知识点总结之c++基础(一)

1、#include 标准库用 注: 用 #include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 2、C++中的static C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者

Xcockroach的专栏 2051

迫零均衡前与迫零均衡后眼图对比附Matlab代码

迫零均衡(Decision Feedback Equalization,DFE)是一种常用的数字通信技术,用于抑制信号传输中的多径干扰。迫零均衡(Decision Feedback Equalization,DFE)是一种常用的数字通信技术,用于抑制信号传输中的多径干扰。眼图是一种常用的信号质量评估工具,通过绘制接收到的信号在时域上的波形,可以直观地观察到噪声、失真和干扰等问题。眼图是一种常用的信号质量评估工具,通过绘制接收到的信号在时域上的波形,可以直观地观察到噪声、失真和干扰等问题。

ByteSparkX的博客 459

YOLOv11改进 | 模型知识蒸馏篇 | 利用模型蒸馏改进YOLOv11进行无损涨点 | 在线蒸馏 (附代码 + 完整文件 + 解析教程)

这篇文章给大家带来的最新改进是模型的蒸馏,利用教师模型指导学生模型从而进行模型的涨点,本文的内容不仅可以用于论文中,在目前的绝大多数的工作中模型蒸馏是一项非常重要的技术,所以大家可以仔细学习一下本文的内容,本文从YOLOv11的项目文件为例,进行详细的修改教程,文章内包括完整的修改教程,针对小白我出了视频修改教程,如果你还不会我提供了修改后的文件大家直接运行即可,所以说不用担心不会适用!模型蒸馏真正的无损涨点,蒸馏你只看这一篇文章就足够了,本文内容为在线蒸馏教程,之前的文章为离线蒸馏!

Snu77的博客 2667

C/C++知识点之C/C++经典面试题一

本文主要向大家介绍了 C/C++知识点之C/C++经典面试题一,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。 1.变量的声明和定义有什么区别? 常量:在程序执行过程中,不会发生改变的量,不能被改变的量 变量:在程序执行过程中,可以被改变的量 定义变量的方式:数据类型 变量名 = 常量; int num = 10;//定义(分配存储空间,初始化值为常量) int num;//定...

542

Python 爬虫高级实战:HTTPS 证书忽略与代理抓包配置

本文深入解析了HTTPS加密与SSL证书校验机制在爬虫开发中的核心问题及解决方案。文章首先剖析了HTTPS协议架构和证书校验流程,指出爬虫开发中常见的证书异常场景及其负面影响。随后详细介绍了Python主流请求库(requests、httpx、aiohttp)的证书忽略配置方法,包括同步/异步模式下的实现方案。针对代理环境,文章系统比较了HTTP、HTTPS、SOCKS5等代理类型的特性差异,并提供了完整的代理配置示例。特别对中间人抓包场景,阐述了Mitmproxy的工作原理和配置要点。最后提出了工程级爬虫

2503_91057718的博客 86

常见C++面试题及基本知识点总结(一)

【转载请注明出处】:http://www.cnblogs.com/LUO77/p/5771237.html  1. 结构体和共同体的区别。 定义: 结构体struct:把不同类型的数据组合成一个整体,自定义类型。 共同体union:使几个不同类型的变量共同占用一段内存。 地址: struct和union都有内存对齐,结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐...

夜空中最亮的星 3455

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

c++常见面试知识点(一)

c++常见面试知识点(一)

ON THE ROAD 466

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C++笔试面试常考知识点汇总(一)

1:大端与小端?与寻常习惯的区别? 大端:高地址存储低位字节。 小端:低地址存储低位字节。 如对于数据0x1234,其32为字节为0x00001234。 对于大端来说:(地址由低到高存储)00 00 12 34 对于小端来说:(地址由低到高存储)34 12 00 00 由此可以得出结论:大端的存储方式与寻常习惯相一致,而小端的存储方式为按照字节倒排。2:#include<

hmxz2nn的博客 7032

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

linux c++技术面试,linux c/c++面试知识点整理(一)

1、c/c++申请动态内存在c++中,申请动态内存是使用new和delete,这两个关键字实际上是运算符,并不是函数。而在c中,申请动态内存则是使用malloc和free,这两个函数是c的标准库函数,使用它们必须包含stdlib.h,才能编译通过。new/delete和malloc/free的相同之处在于,new和malloc都是手动申请动态内存,释放时new则需要delete释放内存,而mall...

weixin_33362939的博客 334

C++ 后端开发面试知识点汇总之基础知识(一)

C++ 后端开发面试知识点汇总

qq_39345255的博客 765

c/c++笔试、面试知识点(一)

1、extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。 (1) 被extern "C"限定的函数或变量是extern类型的 extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句: extern int a;

hxw13066863774的博客 519

常见的C++面试题与知识点总结(一)

1. 结构体和共同体的区别。 定义: 结构体struct:把不同类型的数据组合成一个整体,自定义类型。 共同体union:使几个不同类型的变量共同占用一段内存。 地址: struct和union都有内存对齐,结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。 关于内存对齐,先让我们看四个重要的基本概念: 1.数据类型自身的对齐值: 对于cha

Watson2016的博客 1154

中文提示词工程:从分词到跨模态对齐的实战指南

中文提示词不是简单翻译,而是涉及分词、语义嵌入、跨模态对齐与空间建模的系统性工程。其核心在于解决中文特有的歧义性(如一词多义、文化专有名词、方位模糊)和多模态映射失准问题。高质量中文生成依赖于底层文本编码器能否将‘青绿山水’‘灶王爷’等文化符号映射为对应图像特征向量,而非字面拆解;更需分词器尊重语义单元,避免‘唐装’被切分为‘唐朝+服装’。技术价值体现在首图命中率、微调稳定性与人工修正成本降低,广泛应用于国风设计、非遗数字化、电商主图等强文化语义场景。本文聚焦Flux.1等工具在中文理解上的工程级突破。

weixin_34375251的博客 296
上一篇: Pytorch模型训练-----------数据集加载之ImageFolder之全过程
下一篇: 74. 搜索二维矩阵
黑猫爱小鹿
博客等级 码龄8年 1万+粉丝 205原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值