c/c++
文章平均质量分 84
木木em哈哈
09,我太想进步了!
你看,又急。
——《Python领域新星创作者》(
展开
-
C++局域网从服务器获取已连接用户的列表(linux to linux)
一个基于C++入门教程(18)socket 实现简单聊天室_std socket_爱我呦呦的博客-CSDN博客本节通过socket实现一个简单的聊天室功能聊天室中如果有人说话,则服务器负责将内容传送给聊天室的其他人那么就需要客户端和服务端两个程序,客户端负责发送消息,服务端负责接收和转发消息客户端代码:#include#include#include#include#include的拓展功能。并且把一些不足之处给指出来了。原创 2023-11-26 12:20:10 · 304 阅读 · 0 评论 -
【C++】多线程的学习笔记(3)——白话文版(bushi
官方原文解释翻译就是条件变量是一个对象,它能够阻止调用线程,直到通知恢复。当调用线程的一个等待函数时,它使用 (mutex ) 来锁定线程。该线程将保持阻塞状态,直到被另一个线程唤醒,该线程对同一对象调用通知函数。这里我们可以看到Condition Variable一般是要和mute锁配合使用来发挥他的最大用处。原创 2023-11-17 20:07:30 · 408 阅读 · 0 评论 -
【C++】多线程的学习笔记(2)——白话文版(bushi
lock_guard是模板类,对比于mutex的区别是lock_guard在创建时会尝试获得锁的所有权(注意时尝试,如果获取不到就相当于没有用,并且不会报错),在作用域结束时会自动析构,无需手动解锁该类不可中途上锁和解锁,不可复制unique_lock的用法和lock_guard的用法类似,主要的区别在于他可以中途上锁以及解锁对比于lock_guard会更加的灵活但是所需要的内存空间会更大同时它的也有adopt_lock参数用法一样,而且他还拥有其他的第二参数。原创 2023-10-04 17:26:22 · 226 阅读 · 0 评论 -
【C++】多线程的学习笔记——白话文版(bushi
C++ 作为一种强大的编程语言,为多线程编程提供了丰富而灵活的支持。C++ 的标准库提供了头文件,其中包含了用于创建、启动和管理线程的类和函数。通过使用这些多线程库和功能,开发人员可以轻松地引入并发性到自己的应用程序中,实现多线程的并行处理。thread函数中定义线程的语法规如下std::thread 变量名 (函数,传递的参数1,传递的参数2,传递的参数3...)【如果前面加了using namespace std;可以删除std::】原创 2023-10-01 21:07:14 · 272 阅读 · 0 评论 -
【力扣】三角形最小路径和
本题是动态规划的一道经典题目,最早出现在1994年的ioi比赛中经过了20多年的时间,如今已经变成了动态规划的入门必做题。原创 2023-09-16 18:37:37 · 571 阅读 · 0 评论 -
[C++]杨辉三角
给定一个非负整数numRows ,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。原创 2023-09-07 09:59:01 · 693 阅读 · 0 评论 -
【力扣】两数相除(c/c++)
给你两个整数,被除数dividend和除数divisor。将两数相除,要求乘法、除法和取余运算。整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345将被截断为8-2.7335将被截断至-2。返回被除数dividend除以除数divisor得到的。假设我们的环境只能存储有符号整数,其数值范围是。本题中,如果商231 − 1,则返回231 − 1;如果商-231,则返回-231。310/3 = 3.33333.. ,向零截断后得到 3。-2。原创 2023-09-03 12:28:36 · 864 阅读 · 0 评论 -
把c++的函数导出为dll文件
DLL(Dynamic Link Library,动态链接库)是一种包含可被多个程序共享的代码和数据的文件格式。它可以被动态链接到程序中,在程序运行时提供所需的功能和服务。DLL 文件通常包含函数、类、变量和资源等,可以被其他程序调用和使用。使用 DLL 可以实现代码的复用、模块化开发和提高程序性能等好处。原创 2023-09-02 18:01:41 · 800 阅读 · 0 评论 -
【力扣】盛最多水的容器
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。49图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。原创 2023-08-26 17:17:25 · 629 阅读 · 0 评论 -
2022蓝桥杯题目——“山”
这天小明正在学数数。他突然发现有些正整数的形状像一挫 “山”, 比如 123565321、145541123565321它 们左右对称 (回文) 且数位上的数字先单调不减, 后单调不增。小朋数了衣久也没有数完, 他惒让你告诉他在区间[2022,2022222022] 中有 多少个数的形状像一座 “山”。原创 2023-08-05 21:13:16 · 529 阅读 · 0 评论 -
2019蓝桥杯省赛题目——“数的分解”
就是elseint main()i原创 2023-08-05 14:37:31 · 199 阅读 · 0 评论 -
C++智能指针(3/3)
public:cout原创 2023-07-15 22:40:07 · 187 阅读 · 0 评论 -
C++智能指针(2/3)
自动释放内存:智能指针使用了RAII(资源获取即初始化)的原则,在创建时分配内存,在销毁时自动释放内存,无需手动管理内存释放,避免了因为忘记释放内存而造成的内存泄漏问题。unique_ptr是一种独占所有权的智能指针,同一时间只能有一个unique_ptr指向一个对象,当unique_ptr被销毁时,对象也会被释放。在这之中开始时p1托管str的指针,后面p2接管str指针的同时会把p1的托管给取消,这样p1指针指向的就是NULL(空),从而报错。这是因为auto_ptr与unique_ptr的排他性。原创 2023-07-12 20:35:23 · 219 阅读 · 0 评论 -
C++的智能指针(1/3)
auto_ptr 是c++ 98定义的智能指针模板,其定义了管理指针的对象,可以将new 获得(直接或间接)的地址赋给这种对象。自动释放内存:智能指针使用了RAII(资源获取即初始化)的原则,在创建时分配内存,在销毁时自动释放内存,无需手动管理内存释放,避免了因为忘记释放内存而造成的内存泄漏问题。避免悬挂指针:智能指针会在其所管理的对象不再需要时自动释放内存,并将指针置为空,避免了悬挂指针问题,即指向已经释放的内存区域。智能指针是一种封装了原始指针的对象,它提供了自动内存管理的功能。_cpp智能指针特性。原创 2023-07-11 21:54:56 · 136 阅读 · 0 评论 -
c++红黑树(4/4)
这四节课主要学了什么是红黑树,以及如何进行红黑树进行平衡性调整学习了这四节你可以更加得心应手的去理解指针以及树的概念并且在学习其他类型的树时会非常非常的得心应手最后,恭喜你看到这里。t=N5F7c++红黑树(3/4)_木木em哈哈的博客-CSDN博客https://blog.csdn.net/mumuemhaha/article/details/131191005?原创 2023-06-20 00:07:05 · 110 阅读 · 0 评论 -
c++红黑树(3/4)
再次恭喜你,了解了红黑树的第二种情况的处理方法,接下来的最后一章的要讲剩下来的三种情况——因为设计左旋的代码和右旋其实相差不多,我们理解了右旋代码可以很快的理解并且使用左旋代码。t=N4P3C++红黑树(2/4)_木木em哈哈的博客-CSDN博客https://blog.csdn.net/mumuemhaha/article/details/131159253?原创 2023-06-13 17:07:42 · 127 阅读 · 0 评论 -
C++红黑树(2/4)
恭喜你,已经初步学会了红黑树的第一种平衡性调整,即使还有一些情况还不知道,但是请不要担心,后面的文章会教你如何去做。t=N4P3C++红黑树(1/4)_木木em哈哈的博客-CSDN博客https://blog.csdn.net/mumuemhaha/article/details/131152321?原创 2023-06-12 07:00:00 · 126 阅读 · 0 评论 -
C++红黑树(1/4)
红黑树只会出现红色节点以及黑色节点且根节点一定是黑色红色节点不能相邻出现(黑色可以)所有叶子节点到根节点所经过的黑色节点一定相同最短路径的两倍不会超过最长路径这里需要主要注意为什么新定义的叶子结点的初始值为红色而不为黑色因为如果为黑色,由于红黑树的第三条特性,没插入之前红黑树各个的叶子结点已保持了平衡而插入数据之后平衡一定会被打破从而造成每次插入数据之后都要进行一次平衡性调整而如果红色只会在父亲节点为红色是因为第二条特性要进行平衡性调整,而在父亲节点为黑色时则直接插入。原创 2023-06-11 13:23:40 · 204 阅读 · 0 评论 -
C++中的pair 和make_pair的用法
/创建一个空的pair对象(使用默认构造),它的两个元素分别是T1和T2类型,采用值初始化。//创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2。// 以v1和v2的值创建一个新的pair对象,其元素类型分别是v1和v2的类型。p1 < p2;// 两个pair对象间的小于运算,其定义遵循字典次序:如 p1.first < p2.first 或者!原创 2023-06-10 11:57:58 · 428 阅读 · 0 评论