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 成员函数必须具体到某一实例。**
    
ECMWF等大气数据批量下载(Python API)详细步骤 ECMWF等大气数据批量下载(Python API) 遥感方向做热红外温度反演,不可避免的要用到大气廓线数据,大气数据具有实时性,比如2018年9月1日的早上8点的影像,为了提高反演精度就需要用到时间上与其相差尽可能接近的大气数据,用于消除大气的影响,如果数据量较少我们可以查看影像的时间和空间范围进行下载,但是如果处理某个较大区域时可能涉及到大量的影像,如果一景一景对应查找去下载会很麻烦,因此针对大量数据的自动批量下载很有必要。本文根据 https://cds.climate.copernicus.eu/# 阅读详情

相关推荐

自由曲面与衍射光学元件DOE:从基础理论到工业应用的全景解析

本文全景解析了自由曲面与衍射光学元件的核心理论与工业应用。文章深入探讨了自由曲面在非对称光学设计中的灵活性及其数学描述与制造挑战,并阐述了衍射光学元件通过微纳结构进行波前相位调制的原理与多样化功能。两者与经典光学互补融合,共同构成了高端成像、智能照明、激光加工及AR/VR等前沿领域的底层技术支柱。

devops8pract的博客 391

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

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

_ACME_的博客 4万+

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1370

C++面试知识点(一)

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

dingyahui的博客 1440

一个开源的AI数据分析工具,与数据对话,一键生成SQL、图表、表格、报告和智能商业分析。

Wren AI是一个开源的AI智能代理,让用户能够跟数据对话,实现从文本到SQL的转换,还能生成图表、电子表格、报告以及商业智能分析。它支持多种语言,能深入挖掘数据价值,提供智能数据探索功能,通过语义索引和精心设计的界面,让用户无需写代码即可获取洞察。Wren AI采用独特的架构,包含Wren UI、Wren AI Service和Wren Engine三大核心服务,可部署在本地或云端,助力团队高效、安全地解锁数据潜力。

AI_Charlotte的博客 4496

仓储控制系统(WCS)设计

WCS系统设计方法

cetclyb的博客 2万+

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

PX4飞控 vs 大疆A3:开源与闭源方案在无人机硬件架构中的实战对比

本文深入对比了PX4飞控与大疆A3在无人机硬件架构上的差异,分析了开源与闭源方案在工业级无人机开发中的优劣势。通过详细的硬件配置、传感器兼容性、扩展能力及性能测试数据,为开发者提供选型指南,特别适合需要自定义算法和复杂功能集成的项目。

a3b4c5的博客 888

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

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

Xcockroach的专栏 2051

不会路由器叠加多条宽带?看这个就够了,能让你的局域网速度更快!

通常我们在企业网络或实际项目中,随着用户的增加,一条或者几条带宽不能满足正常使用,便可以对带宽进行叠加,便于网络带度更快;通常家里有可能有两条带宽的,联通或移动的,可能都是充话费送的,但网速都不怎么样,不用可惜,用之委屈,那怎么办呢?如在迅雷上开启下载,多个资源同时下载,此时总带宽可以达到120M,也就是WAN口带宽可以叠加。多wan口路由器, 一般是有2个wan口,分别为wan1与wan2。当然也有更多的wan口的。[1] 对整个局域网来说,出口带宽数量多了,相当于总带宽上升,这样是可以起到叠加效果。

qq_43416206的博客 1112

DW3000芯片驱动API介绍

详细介绍DW3000驱动程序API的调用流程说明和中断处理程序流程说明

DT程序员的博客 1522

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

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

542

机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

现在,我们将进入到机器学习的核心部分——算法原理。在本篇文章中,我们将详细探讨各种机器学习算法的原理、优缺点和适用场景。

a871923942的博客 2965

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

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

夜空中最亮的星 3455

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

ON THE ROAD 466

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

hmxz2nn的博客 7032

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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、付费专栏及课程。

余额充值