- 博客(42)
- 收藏
- 关注
原创 【Linux线程(二)】线程互斥和同步
在上一篇博客中,我们讲解了什么是线程以及如何对线程进行控制,那么了解了这些,我们就可以在程序中创建多线程了,可是多线程往往会带有许多问题,比如等问题,解决这些问题的关键在于如何实现。今天我们从多线程中的数据竞争问题入手,进一步了解多线程并且利用互斥机制来解决问题。
2024-05-14 15:00:10 771 2
原创 树形选择排序/锦标赛排序(隐式构建树)
锦标赛排序(Tournament):又叫树形选择排序,是选择排序的优化版本,堆排序的一种变形(均采用完全二叉树)。锦标赛排序是一种利用树结构来找到数组种第二大元素的方法,其基本思想是通过构建一颗满二叉树,树的叶子节点存放原始数组的元素,而非叶子节点存放叶子节点中的最大值。通过比较根节点的左右子节点,就可以找到第二大的元素。
2024-04-25 22:12:54 290
原创 C++入门2
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调。1. inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会。3. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何。
2023-10-10 17:14:18 85
原创 【Linux 】如何使用gdb调试代码
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c/c++程序员,gdb是必不可少的工具;一般来说,GDB主要帮助你完成下面四个方面的功能:官网:https://www.sourceware.org/gdb/首先看看自己的linux上有没有安装gdb如果显示就是已经有gdb了,如果没有的话,使用yum指令安装:(普通用户在yum前加sudo)基础使用进入调试模式首先我们写一个mycode.c的文件:
2023-09-16 17:31:11 118
原创 数据结构 - 栈和队列
一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。:栈的删除操作叫做出栈。出数据也在栈顶。
2023-05-25 20:02:00 60
原创 顺序表和链表
另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带 来很多优势,实现反而简单了,后面我们代码实现了就知道了。线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存 储。概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
2023-05-23 23:32:00 76
原创 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词
我们知道一个条件为真就是1,为假就是0,3个人说了真话,1个人说了假话,那么这三个条件加起来等于3。所以我们就可以利用字符的ASCII码值来遍历a~d,谁满足以上的条件谁就是凶手,并打印。日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。现在请根据这些信息,写一个程序来确定到底谁是凶手。已知3个人说了真话,1个人说的是假话。
2023-03-30 16:22:31 100
原创 C语言:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
2023-03-30 16:02:40 244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人