1.什么是智能指针?智能指针是 C++ 中用于管理动态分配内存的工具,通过封装原始指针并利用 RAII(资源获取即初始化)机制,自动管理对象的生命周期,避免内存泄漏和悬垂指针问题。智能指针是 C++11 引入的现代化特性,定义在 <memory> 头文件中。2.C++为什么要引入智能指针?自动管理内存 避免内存泄漏 支持复杂的所有权管理 避免悬空指针提高代码可维护性3.智能指针的分类a
本文主要探究有那些使用场景会导致死锁的情况 什么是死锁? 死锁是指两个或多个线程互相等待对方释放资源,导致所有线程都无法继续执行的情况。在 C++ 中,死锁通常发生在使用锁(std::mutex 或其他同步原语)时,线程之间形成了循环依赖或资源竞争。 死锁的经典条件 互斥条件:资源(如锁)一次只能被一个线程持有。 持有并等待条件:一个线程持有至少一个资源,同时在等待另一个资源。 不可抢占条件:
题目 题目分析 笔试的时候思考流程,我先是想把所有的城市当作节点,存到一个vector数组里面,然后 再对这个vector进行按节点里面的x进行排序,然后依次进行处理,想着维护一个最大城市开销,和一个最大开心值。最后没有在规定时间内写出来,比较遗憾~ 提交的代码: #include<iostream> #include<string> #include<vecto
一、问题发生的场景 架构一般是出现在B/S架构场景,在浏览器中用户输入url进行web页面访问,那么探究一下,在输入url会发生什么呢,其次这个场景,在面试过程中算比较开放的题目,可拓展延申的内容很多,这里在进行整个脉络的梳理和提出可能面试官会问到的相关问题。 二、流程图 基于如上上图的流程思路来进行梳理所有的流程和相关的问题。 三、输入url并进行解析 3.1url的定义 url是统一资源定
说说Linux常见的命令 在面试过程中,面试官可能会问到,“你对linux熟悉么,说说常见的命令”,所以在这个之前了解并能在实战开发的时候能进行运用这些命令有利于命令的记忆。但是有些命令难免出现忘记,所以输出本文,全面梳理一下Linux的命令~ flowchart TD Linux命令 --> 基础操作 Linux命令 --> 目录操作 Linux命令 --> 文件操作 Lin
一、通过开发文档初识QPushButton类connect(myButton,&QPushButton::clicked,this,&MyWidget::close);点击按钮和关闭的操作,那么如何知道QPushButton中有clicked方法还有close槽函数通过查找文档: 先搜索:QPushButton没有找到相关的槽函数,那么就找他的父类,因为可能继承自它的父类的槽函数再
qt学习笔记学习背景介绍互联网核心岗位 职责1.开发 程序员客户端:直接和用户打交道的这一端的程序虽然大部分的客户端程序,是需要背后有服务器进行支撑,同时也有一些程序不需要服务器,比如画图板,计算器等Qt是特指进行桌面应用开发客户端开发的重要任务:编写和用户交互的界面和用户交互界面风格:1.TUI 命令行/终端界面2.GUI 图形化界面Qt的优点:跨平台,几乎支持所有的平台接口简单,容易上
一、管道文件的创建接口mkfifo1.1在命令行创建一个管道文件这个是用来创建有名管道。一般这么使用,mkfifo +有名管道的名称指令:mkfifo myfifop为管道文件的文件标识符。1.2在代码中创建管道文件需要包含头文件#include<sys/types.h>#include<sys/stat.h>使用说明:mkfifo() 制作一个 FIFO 特殊文件,文件名
一、继承的概念及定义1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继 承是类设计层次的复用。先用一个例子来提高对继承概念的理解我们在对学校的学生、老师
上次主要学习了关于因特网基本概论和三种交换方式,重点在于对这些的理解上面。计算机网络的定义计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合。互连 :是指计算机之间可以通过有线或无线的方式进行数据通信。自治:是指独立的计算机,它有自己的硬件和软件,可以独立运行使用。集合:是指至少需要两台计算机。计算机网络的较好的定义是:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并
一、systemv版本共享内存进程间通信的本质是:先让不同的进程,看到同一份资源!1.1直接原理两个进程1.1.2原理描述有A、B两个进程,他们都够task_struct的结构体,task_struct内指向当前进程的进程地址空间,这是前置基础。首先是通过系统调用接口向操作系统申请内存,拿到key和shmid。然后将当前内存的物理地址分别向两个进程的页表进行挂载映射。形成与之映射的虚拟地址,然后在
一、因特网概述1.1网络、互连网和因特网(理解)网络由若干个节点(Node)和连接这些结点的链路(Link)组成。多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网。因此,互联网是“网络的网络”因特网是世界上最大的互联网络。internet与Internet的区别internet(互联网或互连网)是一个通用名词。它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信
一、进程间通信介绍1.1 进程通信的目的数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。1.2进程间
分发糖果题目介绍n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。测试用例算法思想:分发糖果是贪心算法思想的典型例题。根据题意我
一、什么是冯·诺依曼体系结构? 我们现代的计算机、服务器等设备。大部分都遵守冯·诺依曼体系。如下图就是我们常见的体系结构通常有一个输入设备、一个输出设备、存储器、运算器、控制器等。其中运算器和控制器等组成了我们熟知的cpu。二、深度理解冯·诺依曼体系结构的组成1.存储器指的是内存。2.输入设备:鼠标,键盘,摄像头,话筒,磁盘,网卡....3.输出设备:显示器,播放器硬件,磁盘,网卡...
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号