C/C++
文章平均质量分 71
夏荷影
这个作者很懒,什么都没留下…
展开
-
智能指针 Unique_ptr实现
unique_ptr概述unique_ptr 是 C++ 11 提供的用于防止内存泄漏的智能指针中的一种实现,独享被管理对象指针所有权的智能指针。unique_ptr对象包装一个原始指针,并负责其生命周期。当该对象被销毁时,会在其析构函数中删除关联的原始指针。unique_ptr具有->和*运算符重载符,因此它可以像普通指针一样使用。unique_ptr对象始终是关联的原始指针的唯一所有者。我们无法复制unique_ptr对象,它只能move。由于每个unique_ptr对象都是原始指针的唯一原创 2021-06-23 10:00:27 · 1327 阅读 · 0 评论 -
智能指针 Shared_ptr 简单实现
shared_ptr概述shared_ptr是C++11中提供的一个智能指针类,可以在任何位置都不使用时自动删除指针,从而彻底消除内存泄露和悬空指针问题。它在设计过程中遵循共享所有权的概念,即不同的shared_ptr可以引用同一个指针,并在内部使用计数器机制来实现这一点。每个 shared_ptr 对象在内部指向两个内存位置:指向对象的指针。用于控制引用计数数据的指针。共享所有权如何在参考计数的帮助下工作:当新的 shared_ptr 对象与指针关联(复制构造,赋值等)时,则在其构造函数原创 2021-06-23 09:57:49 · 752 阅读 · 1 评论 -
类STL deque实现 C++
第一章Deque实现1.1deque概述deque是一个双向开口的连续线性空间,可以在首尾两头在头尾两端分别做元素的插入和删除操作,如图1所示。deque可以在常数字时间内对头端进行元素的插入和移除操作。同时,其没有容量概念,因为是动态地以分段地址形式组合形成的,随时可以增加一段新的空间并链接起来。虽然deque可以实现快速对首尾进行读取,但是对其中间数据的读取较为困难,需要O(n)的时间复杂度。1.2deque原理deque是由一段一段的定量连续空间构成的,一旦有必要在deque的前端或尾端原创 2021-06-16 19:55:39 · 322 阅读 · 0 评论 -
C++ 多线程 模拟处理机调度
§2.1第二题实验目标实验内容:进程调度。模拟进程调度:按简单循环轮转调度算法模拟进程调度。用一个队列模拟一系列(不少于5个)需要调度的进程,每个进程按照时间片进行处理机的分派,假设进程控制块PCB的结构如下:进程ID到达时间进程响应时间剩余时间实验要求:a)PCB内容自由指定,逻辑上合理即可(即不要求定义真正的时间,只要给出合理的数字即可);b)时间片定义为:(所有进程总响应时间之和)/N2 (N为进程数);c)在屏幕上输出以下进程状态表(表中每一行代表一个进程对一个时间片的占用):原创 2021-01-06 14:34:49 · 619 阅读 · 1 评论 -
口语考试模拟程序(线程的同步/互斥)
§1.1第一题实验目标题目场景:某外语考试,主考在考场对10名应试者进行考核。考场内部每次只能接待1名考生。在考场外部的走廊里,有5把椅子,有1名助理对坐在椅子上的考生进行叫号。规则是:1.考生需要首先坐在走廊里的椅子上按照顺序等待,如果没有空椅子,只能等其他考生腾出椅子。2.助理负责从坐在椅子上排队等候的考生中顺序引领一名考生进入考场;如果没有人等待,助理等候;如果考场中已有考生应考,则须等当前考生结束考试后才能引领下一位考生。3.当主考考核完一名考生后,考生方可离开;同时,考生等待助理引领下原创 2021-01-06 14:31:23 · 840 阅读 · 0 评论 -
五子棋 C语言
五子棋游戏程序(较高难度+有加分)(设计分值:20-30分)应用C语言编写程序,可以在计算机上实现二人对弈五子棋功能。功能要求:(1)欢迎界面生成、游戏界面生成;(2)光标移动和落子显示;(3)判断胜负、悔棋功能,提供音效;(4)综合应用结构体、数组、按键处理和图形编程等编程方法。§10.2算法设计§10.4程序分析#include<stdio.h>#include<windows.h>#include<conio.h>int qipan[21]原创 2020-12-15 20:57:07 · 5310 阅读 · 21 评论 -
贪吃蛇游戏 C语言
**编写贪吃蛇游戏**(设计分值:15-20分)贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。下面就先说说游戏的规则:开始:按左键开始游戏,按按钮或菜单重新开始。下键:按下时,是蛇向下行, 当碰到墙壁时,游戏结束。左键:按左时,是蛇向左行, 当碰到墙壁时,游戏结束。右键:按右时,原创 2020-12-15 20:49:45 · 941 阅读 · 0 评论