c++ 面试题

文章目录

  • c++面试准备
    • 语法
      • c++ 11
        • auto 和 decltype
        • 左值右值和移动语义
      • 前++和后++
    • 网络
      • 简述三次握手
      • 简述四次握手
      • 简述epeo select模型区别
    • 内存
      • 程序在内存中如何分布
    • 数据库
      • 索引失效的发生场景
      • 常用索引
      • 常用索引结构
      • 什么是ACID(数据库事务特性)
      • mysql的锁分为哪些类别

c++面试准备

语法

c++ 11

auto 和 decltype

auto为自动推导变量类型

auto a = 10;

decltype为推导表达式,用于从已存在变量返回一个类型

auto b = 2;
decltype(b) c = 3;

左值右值和移动语义

  1. 左值是可被取址有名字可被赋值的对象,右值不可被取址或没名字。如运算表达式中间变量,lambda表达式这些都是右值
  2. 在有些情况比如函数返回了一个对象,我们定义了一个对象用来接收这个将返回的对象。在这个过程中我们使用了一次拷贝构造和一次析构.这种情况开销会变大,所以如果可以把将销毁的对象移动到新定义的变量这样就舒服多了,语法如下
class AA{public:AA():A1(5), A2(6) {}AA(AA&& rvalue) noexcept: A1(std::move(rvalue.A1)),A2(std::move(rvalue.A2)) {}private:int A1;int A2;};
AA AA1();
AA AA2(std::move(AA1))

前++和后++

  1. STL中只能使用前++, 返回的是迭代对象引用,否则返回一个无用且已销毁的对象
  2. 针对基础类型前++先加后返回,后++ 先返回再加

网络

简述三次握手

client server SYN=1,SEQ=J 请求新建连接 客户端发送后进入SYN_SENT, 服务端收到后进入SYN_RVCD SYN=1,ACK=1,ack=J+1,seq=K 服务端应答并发送自身随机码 客户端收到后进入ESTABLISHED ACK=1,ack=K+1 服务端发送ack应答 服务端进入ESTABLISHED状态 client server

简述四次握手

client server FIN=M请求断开连接 客户端进入FIN_WAIT_1,服务端收到后进入CLOSE_WAIT ack=M+1 客户端进入FIN_WAIT_2 FIN=N 服务端进入LAST_ACK,客户端进入到TIMEWAIT ACK=1, ack=N+1 等待2MSL事件后client进入到CLOSE状态 client server

简述epeo select模型区别

select 基于轮询, epeo基于io通知机制,即文件描述符变化回调,select 最大队列1024,epeo则没有限制。但select优点是开发速度快,

poll和select类似,都是轮询,只是使用的fd结构体不同,没有最大数量限制

内存

程序在内存中如何分布

程序一般运行在虚拟内存上,通过映射,程序可以看起来运行在一段连续的内存上,内存地址从低到高分别放着, 系统预留空间,程序代码段,data段(用来存放全局static,文本常量),bss段(存放未初始化的static),堆,栈

数据库

索引失效的发生场景

使用explain SQL查看执行计划

  1. select * from tableA where 带索引的字段条件 or 不带索引的字段条件
  2. select * from tableA where 带索引字段 like ‘%XXX’
  3. select * from tableA where 字符串字段 = 2222 ;这里必须用引号包起来
  4. select * from tableA where 带索引字段 - 5 = 6; 不能在索引字段上进行计算
  5. 联合索引只查索引后边的单个字段

常用索引

  1. unique 唯一索引
  2. parimary key 主键索引
  3. index 普通索引
  4. fulltext 全文索引
  5. 组合索引

常用索引结构

  1. B tree 普通二叉树,应注意数据不能偏向太大,否则一端太长会变成线性查找
  2. RBT (red-black-tree) 红黑树,接近平衡二叉树,但允许出现 max_deep - min_deep <= 1,所以相对调整次数更少,同时兼顾索引调整速度
  3. 太深了,后边再学

什么是ACID(数据库事务特性)

  1. 原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚
  2. 一致性(Consistency),数据库事务必须从一个状态一起切换到另一个状态,比如交易成功,并扣款成功
  3. 隔离性(Isolation)AB两个用户同时操作,只能有一个生效后才让另一个开始编辑
  4. 持久性(Durability)事务一旦提交对数据库的修改是要被长久保存下去的

mysql的锁分为哪些类别

  1. 按模式
    • 悲观锁
    • 乐观锁
  2. 按范围
    • 行锁
    • 页锁
    • 表锁
    • 全局锁
  3. 按属性
    • 共享锁
    • 排他锁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/44543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

均线多头排列和突破前高形态叠加,只为抓取主升浪!股票量化分析工具QTYX-V2.6.9...

功能概述 我们的股票量化系统QTYX在实战中不断迭代升级&#xff0c;针对当前行情&#xff0c;主要聚焦在抓取主升浪的强势股。 单一的指标是用局限的&#xff0c;QTYX的选股框架&#xff0c;是把多指标结合起来一起过滤出强势股。 QTYX支持从市场4000多只票中过滤出强势股的流程…

利用“病毒制造机”实现脚本病毒的制造

一、脚本病毒的概念&#xff1a; 脚本病毒通常是 JavaScript 或 VBScript 等语言编写的恶意代码&#xff0c;一般广告性质&#xff0c;会修改 IE 首页、修改注册表等信息&#xff0c;对用户计算机造成破坏。 通过网页进行的传播的病毒较为典型&#xff0c;脚本病毒还会有如下前…

HAProxy负载均衡 代理

1.安装 yum -y install haproxy 2.配置文件 /etc/haproxy 下 global log 127.0.0.1 local2 #日志定义级别 chroot /var/lib/haproxy #当前工作目录 pidfile /var/run/haproxy.pid #进程id maxconn 4000 #最大连接…

软件测试技术之单元测试—工程师 Style 的测试方法

什么是单元测试&#xff1f; Wikipedia 对单元测试的定义&#xff1a; 在计算机编程中&#xff0c;单元测试&#xff08;Unit Testing&#xff09;又称为模块测试&#xff0c;是针对程序模块&#xff08;软件设计的最小单位&#xff09;来进行正确性检验的测试工作。 在实际…

使用PyMuPDF库的PDF合并和分拆程序

PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单工具&#xff0c;用于合并和分拆PDF文件。它提供了一个用户友好的图形界面&#xff0c;允许用户选择源文件夹和目标文件夹&#xff0c;并对PDF文件进行操作。 C:\pythoncode\blog\pdfmergandsplit.py 功能特点 选择文…

unity物体移动至指定位置

物体坐标与物体移动 世界坐标与局部坐标之间的转换物体移动至指定位置需求思路注意 世界坐标与局部坐标之间的转换 在Unity中&#xff0c;物体的坐标分为局部坐标和世界坐标。 局部坐标是相对于物体的父对象的坐标系&#xff0c;而世界坐标是相对于场景的整体坐标系。 使用tr…

css学习2(利用id与class修改元素)

1、id选择器可以为标有特定id的html元素指定特定的样式。 2、选择器以#开头&#xff0c;后跟某id的属性值。 3、class选择器用于描述一组元素的样式&#xff0c;class可以在多个元素使用。 4、类选择器用.选择。 5、指定特定的元素使用class。 6、元素的多个类用空格分开&…

Mariadb高可用MHA (四十二)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、概述 1.1 概念 1.2 组成 1.3 特点 1.4 工作原理 二、构建MHA 2.1 ssh免密登录 2.2 主从复制 2.3 MHA安装 2.3.1所有节点安装perl环境 2.3..2 node 2.3.…

[LitCTF 2023]Ping

因为直接ping会有弹窗。这里在火狐f12,然后f1选禁用javascript,然后ping 然后输入127.0.0.1;cat /flag 得到flag&#xff0c; 查看其他大佬的wp &#xff0c;这里还可以抓包。但是不知道为什么我这里的burp 用不了

AWS复制EC2文件到S3,g4dn.2xlarge没有NVIDIA GPU 驱动问题

1、给instances权限 action > Security > modify IAM role 把提前创建好的role给这个instance即可 2、复制到bucket aws s3 cp gogo.tar.gz s3://ee547finalbucket不需要手动安装GPU驱动 如果要自己安装&#xff0c;参考https://docs.aws.amazon.com/AWSEC2/latest/U…

VBA技术资料MF45:VBA_在Excel中自定义行高

【分享成果&#xff0c;随喜正能量】可以不光芒万丈&#xff0c;但不要停止发光。有的人陷入困境&#xff0c;不是被人所困&#xff0c;而是自己束缚自己&#xff0c;这时"解铃还须系铃人"&#xff0c;如果自己无法放下&#xff0c;如何能脱困&#xff1f; 。 我给V…

C语言 poll多路复用

NAME poll, ppoll - wait for some event on a file descriptor SYNOPSIS #include <poll.h> 函数原型&#xff1a; int poll(struct pollfd *fds, nfds_t nfds, int timeout); #define _GNU_SOURCE /* See feature_test_macros(7) */ …

SkyEye操作指南:连接TI CCS的IDE调试

现代电力电子控制系统的开发中&#xff0c;DSP芯片以其优越的运算性能在控制算法领域得到越来越广泛的应用。传统的DSP开发过程往往需要在完成控制系统仿真与程序设计后&#xff0c;才能根据比对结果进行程序修改&#xff0c;全过程还需要硬件电路工程师的配合&#xff0c;开发…

【微信小程序】下拉刷新功能实现

微信小程序开发系列 文章目录 前言一、onPullDownRefresh函数二、实现1.开启下拉刷新2.监听下拉事件 前言 在开发微信小程序中经常会需要下拉页面进行更新要页面数据的功能&#xff0c;微信小程序提供了onPullDownRefresh函数。该函数作用是监听用户下拉动作。 一、onPullDown…

CH01_重构、第一个示例

概述 在这一章节&#xff0c;作者给出了一个戏剧演出团售票的示例&#xff1a;剧目有悲剧&#xff08;tragedy&#xff09;和喜剧&#xff08;comedy&#xff09;&#xff1b;为了卖出更多的票&#xff0c;剧团则更具观众的数量来为下次演出打折扣&#xff08;大致意思是这次的…

JVM面试题-1

1、什么是JVM内存结构&#xff1f; jvm将虚拟机分为5大区域&#xff0c;程序计数器、虚拟机栈、本地方法栈、java堆、方法区&#xff1b; 程序计数器&#xff1a;线程私有的&#xff0c;是一块很小的内存空间&#xff0c;作为当前线程的行号指示器&#xff0c;用于记录当前虚拟…

移植PeerTalk开源库IOS的USB通信监听服务到QT生成的FFmpeg工程

1.添加生成的PeerTalk库 下图选中部分为FFmpeg依赖库 将USB通信服务的m与h文件添加到工程 因为OC文件使用了弱指针,所以要启用弱指针支持 因为FFmpeg拉流动用到本地网络,所以要在plist文件中启动本地网络使用 设置PeerTalk为嵌入模式 设置Runpath Search Paths为@executable_p…

flask接口请求频率限制

pip install Flask-Limiter Flask-Limiter官方文档 基本使用 默认是用IP作为key进行计数的&#xff0c;你也可以自定义key&#xff0c;具体看官网 from flask import Flask from flask_limiter import Limiter from flask_limiter.util import get_remote_addressapp Flas…

【C++中的strcmp函数】

简介 在C中&#xff0c;字符串比较是一项常见的操作&#xff0c;用于判断两个字符串是否相等或者大小关系。strcmp函数是C标准库中用于字符串比较的重要函数。 strcmp函数&#xff1a;字符串比较 strcmp函数用于比较两个字符串的大小关系。它的原型如下&#xff1a; int st…

Android12之com.android.media.swcodec无法生成apex问题(一百六十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…