- 博客(36)
- 收藏
- 关注
原创 【软件开发面经】大厂面试经验
包括但不仅限于学习经历、求学经历以及工作经验相关构造函数、析构函数、拷贝构造、拷贝赋值1、指针的大小一般是多少?最终是由什么决定的?答:在大多数32位操作系统上,指针的大小通常是4字节,而在64位操作系统上,指针的大小通常是8字节。有些特定的编译器、操作系统或编译器选项可能会导致指针大小有所不同,但通常情况下,上述的规则是适用的。在编写跨平台的代码时,最好使用sizeof运算符来确定指针的大小,而不是假定固定的大小2、结构体的大小会由哪些因素决定?成员变量的数据类型、成员变量的数量、内存对齐要求。
2023-10-04 11:34:47
510
原创 【C++】智能指针shared_ptr 底层源码实现
智能指针:智能指针是一个模板类,用来存储指向动态分配对象的指针,负责自动释放动态分配的对象,防止堆内存泄漏。动态分配的资源,交给一个类对象去管理,当智能指针类对象生命周期结束时,自动调用析构函数释放资源。shared_ptr 是一种共享所有权的智能指针,它使用引用计数的方式来管理资源。每个 shared_ptr 都有一个关联的引用计数器,当引用计数为0时,它会自动删除所管理的对象。
2023-09-07 17:42:43
318
原创 【笔试汇总】大厂笔试汇总
RN)小于等于cnt,则全部可以正常调用,返回-1;游戏开始后,参与者任意选择一个方格作为出发点,当遇到下列情况之一退出游戏: (1)参与者当前所处的方格无传送门: (2) 参与者在任意方格上丰动宣布退出游戏 请计算参与者退出游戏后,最多可以获得多少单位的食物 解答要求 时间限制: C/C++ 1300ms.其他语言:2600ms内存限制: C/C++256MB其他语言:512MB 第一行:方块个数N (N
2023-08-28 09:20:23
205
原创 Dijkstra算法模板及应用
到了「加权图」的场景,事情就没有这么简单了,因为你不能默认每条边的「权重」都是 1 了,这个权重可以是任意正数(Dijkstra 算法要求不能存在负权重边)。刚才说普通 BFS 算法中,根据 BFS 的逻辑和无权图的特点,第一次遇到某个节点所走的步数就是最短距离,所以用一个。因为两个节点之间的最短距离(路径权重)肯定是一个确定的值,不可能无限减小下去,所以队列一定会空,队列空了之后,你第一次经过某个节点时的路径权重,不见得就是最小的,所以对于同一个节点,我们可能会经过多次,而且每次的。
2023-08-06 15:45:33
528
原创 【死锁】在Linux环境下,使用互斥锁模拟死锁的产生
线程A在等待互斥锁mutex_B释放资源,线程B在等待互斥锁mutex_A释放资源,双方都在等待对方资源的释放,即产生死锁。只需要破坏其中一个条件即可,最常见的就是。破坏产生死锁的四个必要条件。
2023-07-26 15:25:30
90
原创 【C++】设计模式
简单工厂模式适用于产品较少且变化不频繁的情况,工厂方法模式适用于产品较多且需要扩展的情况,抽象工厂模式适用于需要创建一系列相关产品的情况。抽象工厂模式提供了一种统一的接口来创建一系列相关或相互依赖的产品对象,客户端无需关心具体的产品类和工厂类,只需通过接口来创建对象。抽象工厂模式符合开闭原则,当需要新增产品族时,只需要创建相应的产品类和工厂类,而无需修改已有的代码。工厂方法模式符合开闭原则,当需要新增产品时,只需要创建相应的产品类和工厂类,而无需修改已有的代码。特点:需要什么就生产什么,不断定义抽象工厂。
2023-07-02 18:17:09
80
原创 【C++】C++ 将string字符串类型变量转换为任意类型变量
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含这个头文件。istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C++风格的串流的输出操作。stringstream类同时可以支持C++风格的串流的输入输出操作。
2023-05-24 22:11:26
599
原创 C++ 常考问题积累
创建智能更高的指针,跟踪引用特定对象的智能指针数。例如,赋值时,计数将加1,而指针过期时,计数将减1。仅当最后一个指针过期时,才调用delete。在上面程序中,使用的是unique_ptr智能指针,编译器会报错,避免了留下危险的悬挂指针。:对于指定的对象,只能有一个智能指针可拥有它,可以使用赋值操作转让所有权。上述程序防止了两个指针同时试图删除同一个对象的情况,p3指针不再指向有效的数据,但如果程序随后使用p1,则是件坏事。智能指针是一个对象,它可以在对象过期时,调用自身的析构函数删除指向的内存。
2023-05-11 16:34:04
62
原创 【C++】十大排序算法深究(冒泡、插入、选择、快速、归并、堆、计数、桶)
1、时间复杂度O(n^2)的排序算法:冒泡、选择、插入、希尔2、时间复杂度O(nlogn)的排序算法:快速、归并、堆3、时间复杂度O(n)的排序算法:计数、桶等冒泡排序 升序 时间复杂度O(n^2)基于冒泡排序的升级排序法,鸡尾酒排序法。三、插入排序四、Quick Sort(快排)分治法五、计数排序如果数组长度为n,数组整数范围为k,那么计数排序的时间复杂度为O(n + k),需要一个大小为k的辅助数组,故空间复杂度为O(k)桶排序思想:算法实现:七、Merge Sort(
2022-12-01 21:11:36
289
原创 [C++]使用关键字new创建对象
在堆上创建,由程序员malloc、new、free、delete,缺点是效率较栈低一些,优点是堆上有2G甚至更大的空间。**这时如果声明一个8byte的指针指向堆中4byte的int类型,相当于买了一个装10L水的瓶子,每次只用来装10ml的水,得不偿失。一般情况下,自带数据类型int、容器等都声明在栈上(因为这些数据类型所占用内存大小是确定的,且较小)。在栈上创建变量,优点是由操作系统自动分配与回收,效率高,缺点是分配的内存有限,不同的操作系统栈的内存不同,一般为2M或几M等。
2022-11-04 18:16:57
2793
原创 [C++] 迭代器prefix form和postfix form 前加加与后加加区别 前++&后++
迭代器的前后++同C++自带数据类型的前后++一样,迭代器post++返回值类型self无引用,pre++返回值类型self有引用,c++中允许++++i出现,但不允许i++++出现,所以++(++i) => pre++只有返回引用类型,才可以链式改变元素值,(i++)++为了同c++标准一致,不允许链式后加加,所以返回值类型为无引用self。后加加第一步记录原值(通过迭代器的拷贝构造),然后第二步会调用前++,第三步返回第一步记录的初始值。2、迭代器post++在第二步操作的时候,会调用pre++
2022-11-01 11:21:06
463
原创 【LeetCode】【C++/C#】105.从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树 654. 最大二叉树
前序和后序遍历序列不能构造二叉树,因为根结点在两个序列的两端,并不能根据根结点的位置分割数组,也就是不能找出根结点root的左子树和右子树,所以不能唯一确定一颗二叉树。
2022-10-14 20:26:52
196
原创 C#:SQL语句&LINQ语句与实现数据库的增删改查 EFCore
文章目录1、操作DBContext类的对象,实现SQL语句的执行=>创建表2、实现数据的添加操作3、实现数据的更新4、实现数据的删除总结:一个接口+一个实现注意1、操作DBContext类的对象,实现SQL语句的执行=>创建表 using (MyDatabaseEntities db = new MyDatabaseEntities()) { // ExecuteSqlCommand()方法:用于执行数据的增删改,以及创建表、删除表操
2022-05-23 20:59:15
1528
原创 C# 语言集成查询 LINQ(Language Integrated Query)
提示:如有错误,请不吝指出文章目录注意一、首先声明两个示例集合二、LINQ多种操作方法1.Select方法返回基于某具体类型的可枚举集合(指定的所有数据)2.枚举器返回多个数据项3.筛选数据4.排序、分组、聚合数据5.Join方法联接数据6.使用查询操作符 这种方法为上述查询方法的简写注意注意:1、在下面示例中的new{}表示的是返回两个或以上数据2、Select(cust=>cust) 表示返回整行,而不是只投射特定的列3、无论使用LINQ扩展方法还是查询操作符,当这些在执行的时.
2022-05-23 20:20:14
639
原创 Lazy Execution延迟执行(本质);IEnumerable以及IEnumerator区别;yield return
提示:有待后续持续更新文章目录前言一、一个简单的迭代器产生整数二、foreach循环就相当于执行了下面这些语句三、当执行了一个yield return语句后,接下来该如何执行呢?前言提示:这里可以添加本文要记录的大概内容:例如:一、一个简单的迭代器产生整数static IEnumerable<int> CreatSimpleIterator(){ yield return 10; for (int i = 0; i < 3; i++) { .
2022-05-10 12:45:21
196
原创 IIS部署出现问题:InvalidOperationException: The view ‘Index‘ was not found
问题显示视图View未找到,试着创建一个Index.cshtml,将代码复制过来,重新运行。
2022-04-12 20:50:17
1877
原创 LabVIEW倒立摆二维动态仿真
在LabVIEW前面板需要使用到的控件:在程序面板需要使用到的控件:程序框图面板显示要加载的图片:在整个程序的外面加入定时循环,通过修改定时循环的周期属性来不断的对二维图片进行刷新,最终使倒立摆动起来。最终的一个简单的二维动态倒立摆就完成了。...
2022-03-08 17:03:22
578
原创 将一个数字真正意义上的四舍五入保留小数
double numberOne = 3.1415926;numberOne= double.Parse(numberOne.ToString("0.00"));Console.WriteLine(numberOne);Console.WriteLine($"{numberOne:0.00}"); //只是格式上的保留了两位小数,原变量的值并没有改变
2022-02-10 17:28:12
266
原创 C#里氏转换和多态
里氏转换1.子类可以赋值给父类2.如果父类中装的是子类对象,那么可以将这个父类强转为子类对象注:子类对象可以调用父类中的成员,但是父类对象永远只能调用自己的成员
2022-02-09 19:21:32
558
原创 C#中的Path类、File类、文件流FileStream、StreamReader、StreamWriter
Path类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;namespace _10Path类{ class Program { static void Main(string[] args) { //使用Path静
2022-02-09 17:55:00
710
原创 C#字符串常用方法整理
字符串ToCharArray(); 将字符串转换为char数组new string(char[] chs); 能够将char数组转换为字符串//可以将string类型 看做是char类型的一个只读数组string s = "abcdef";//s[0] = 'b'; 不能这样写,因为该字符数组是只读的//首先将字符串转换为char类型的数组char[] chs = s.ToCharArray();chs[0] = 'b';//最后将字符数组转换为我们的字符串s = new st
2022-02-09 17:24:40
594
原创 C#循环删除指定后缀文件
循环删除指定文件夹中指定后缀文件循环删除指定文件夹中指定后缀文件//删除指定文件夹中指定的后缀文件string[] path = Directory.GetFiles(@"D:\Music\beyond经典歌曲精选", "*.mp3"); //可以指定寻找相应后缀文件的全路径foreach (string item in path){ File.Delete(item);}Console.WriteLine("删除指定后缀文件成功");GetFiles():方法中的第一个参数
2022-01-24 12:08:08
1227
原创 重写与隐藏的区别
重写:提供同一个方法的不同实现,这些方法有关系,因为都旨在完成相同的任务,只是不同的类用不同的方式。隐藏:是指方法被替换成另一个方法,方法通常没关系,而且可能执行完全不同的任务。注意:对方法进行重写是有用的编程概念;而如果方法被隐藏,则意味着可能发生了一处编程错误(除非加上new关键字强调自己没错)。...
2022-01-11 22:42:13
1310
转载 《我和LabVIEW - 一个NI工程师的十年编程经验》原作者发布可免费在线阅读
在线阅读地址:https://lv.qizhen.xyz/太牛了太牛了,作者大大辛苦了!!!
2021-11-23 10:04:07
2678
1
原创 C#学习笔记之从入门到精通
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、C#编程基础二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、C#编程基础//using static System.Console 以简化代码//Main方法中int numberOfApples = 1
2021-11-03 19:53:20
2613
原创 LabVIEW两种方法实现Excel数据(含汉字)读取
使用LabVIEW报表读取Excel数据使用LabVIEW文件I/O中的读取测量文件读取Excel数据方法一:流程为打开–读取–关闭(需要注意的是,此方法打开的文件类型为.xsl)函数–报表生成–创建报表需要注意的是,在创建报表的输入端子(窗口状态、报表类型、模板)处,右击鼠标,创建输入控件,修改相应的格式,具体间该方法最终图。添加Excel Get Data.vi,在LabVIEW帮助中可以查看具体端口设置,如下图。因为我需要读取到的Excel表格里面含有汉字,所以我需要创建字符串数组
2021-10-19 19:50:02
20680
9
原创 Python中常见的数据类型及字符
Python中常见的数据类型及字符转义字符整数int的进制转换浮点类型float一个有标识的盒子存放某个对象ASCII码表对应的字符表示转义字符print('hello\nworld') # \+转义功能的首字母 n--->newline的首字符表示换行print('hello\tworld') # t--->tab的首字符表示加一个table 4个字符表示一个\t的位置print('hello\rworld') # return 回车 world将hello覆盖pri
2021-03-15 14:33:16
302
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人