Windows配置VS Code详细流程
本文介绍Visual Studio Code(VS Code)软件在Windows操作系统电脑中的下载、安装、运行方法。
Visual Studio Code(简称VS Code)是一款由微软开发的免费、开源的源代码编辑器,支持跨平台使用,可在Windows、macOS与Linux等操作系统的电脑上运行。
在我们之前的文章安装Visual Studio的详细流程中,介绍过Vis ...
C语言做题知识点总结
目录C语言做题易错及知识点总结重要!!!负数在计算机中的存储:重要!!!计算机内部的存储特殊情况128变量范围man手册的使用重要!!! 格式化输出(1) 标志字符 (必须放在%说明符后面)(2) 转换精度(3)长度修饰(4) 转换说明转义字符的输出需要加\1. 用双反斜杠 \ 输出单个反斜杠2. 完整示例代码格式化输入(1)匹配字 ...
windows提示找不到make命令
1. 安装mingw(若已安装则忽略此步骤)
https://github.com/niXman/mingw-builds-binaries/releases
上述是官网地址最佳版本(posix-seh-ucrt-rt版):x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev1.7z此处下载带posix-seh-ucrt-rt版本即可,此处安装14.2.0版本将压缩包直接解压到当前文件夹即可解压出来一个mingw64文件夹 ...
【LeetCode Hot 100】两数之和
两数之和
题目链接:LeetCode 两数之和
题目描述
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。
示例1:
输入:nums = [2,7,11,15], targe ...
线程优先级相关函数
任务优先级
Linux系统中任务优先级分为两种:一种是静态优先级,一种是动态优先级
静态优先级指的是任务一旦设置好优先级之后就不能再改变,相当于是任务本身的属性,优先级范围是0~99,优先级数值越大则优先级越高。
普通任务的优先级是0,系统任务的优先级是1~99
pthread_attr_setinheritsched函数
此函数可以设置线程 ...
【work记录:c++web聊天服务器】修复了终止Muduo服务器段错误的bug|将boost服务器改成集群|修复了集群后发送消息只能接收到第一条消息的bug
日期:2025.4.25(凌晨) 2025.5.8(凌晨) 2025.5.11
学习内容:
注册功能
添加好友
修复了终止Muduo服务器段错误的bug
将boost服务器改成集群
修复了集群后发送消息只能接收到第一条消息的bug
个人总结:
首先先表示歉意,鸽了太久了这个项目。
由于这个月基本都是比赛,导致向比赛倾斜(实际是放松的更多,旅 ...
线程相关函数-信号量
POSIX信号量
信号量分为匿名信号量和具名信号量两种
匿名信号量
sem_init函数
该函数可以对POSIX匿名信号量进行初始化。
int sem_init(sem_t *sem,int pshared,unsigned int value)
//sem:由sem指向的匿名信号量的地址
//pshared:该值为0,信号在进程的线程中共享;非0表示信号在进程之间共享,应该位于共享内存中
//value: ...
线程相关函数-读写锁
读写锁
ptehread_rwlock_init函数
此函数可以对一个读写锁进行初始化操作
pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER
int ptehread_rwlock_init(pthread_rwlock_t *rwlock ,const pthread_rwlockattr_t *attr)
//rwlock :传入一个读写锁变量的地址
//attr:设置读写锁的属性,默认属性填NULL
//ret:成功返回0 ...
boost_signals2开发者指南:无需依赖boost库的C++事件处理的优雅解决方案
引言
C++开发中,实现组件间松耦合通信一直是一个挑战。传统的回调函数和观察者模式虽然可行,但往往导致代码复杂且难以维护。Boost.Signals库提供了一种优雅的解决方案,通过信号与槽机制实现对象间的高效通信,同时保持代码的清晰和可维护性。
不过使用Boost.Signals库需要下载完整的boost库并且集成到源码中。但是一些开 ...
[技术探索者手记] C++自学之路 × linux下搭建属于自己风格的FFmpeg开发项目框架
我是一名.NET开发者,最近开始学习C++。目前,我已经掌握了C++的基础语法和入门知识,并对FFmpeg产生了浓厚的兴趣。接下来,我计划自学与FFmpeg相关的技术内容,并记录自己的学习过程。欢迎大家提出宝贵意见,我会虚心接受并采纳大家的建议。谢谢!我是一名.NET开发者,最近开始学习C++。目前,我已经掌握了C++的基础语法 ...
C++方向高频面试题(C++语法相关)
什么是左值引用和右值引用
可取地址的是左值,不可取地址的是右值。
左值引用是借用,右值引用是接管。
C++ move 的作用和原理?
核心作用:将对象的资源所有权从一个对象“转移”到另一个对象,避免不必要的深拷贝,提高程序性能。
原理:std::move 只是类型转换工具,不会实际移动数据,真正的移动逻辑由类的移动构造 ...
读写锁练习
程序中有3个线程,主线程A创建一个文本,每隔6s获取一次系统时间并写入到该文本中,另外两个线程B和C分别从文本中读取当前的时间和日期,子线程B输出系统时间”hh:mm:ss”,子线程C输出系统日期”2025年05月9日”,使用读写锁实现互斥。
/******************************************************************************* ...
线程相关函数
pthread_create函数
此函数可以创建一个线程
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg);
//thread:该参数指向线程标识符的指针,创建成功返回创建线程的ID
//attr:设置线程的属性,填NULL表示默认属性
//start_routine:函数指针 ...
信号量结合共享内存练习
设计程序,进程A专门创建一个信号量集,要求信号量集中有1个信号量,对信号量集合中的信号量进行设置,要求集合中的信号量的初值为1,然后再设计2个程序,分别是进程B和进程C,要求进程B和进程C使用进程A创建的信号量集合中的信号量实现互斥访问。进程B对变量进行+1操作,写入共享内存,进程C读取共享内存的数据,并输出。
...
共享内存练习
设计两个进程,进程A申请一块共享内存,并向内存中写入数据,进程B从共享内存中读取数据并输出
/********************************************************************************
*
*
* 共享内存练习
* author:jindouliu2024@163.com
* date:2025.5.8
*
* Copyright (c) 2024-2025 jindouliu2024@163.com All ...
消息队列练习
进程A创建一条消息队列之后向进程B发送SIGUSR1信号,进程B收到该信号之后打开消息队列并把进程的PID作为消息写入到消息队列中,进程B在写入消息之后,发SIGUSR2信号给进程A,进程A收到该信号则从消息队列中读取消息并输出。
/********************************************************************************
*
*
* 消息 ...
共享内存函数接口
共享内存
共享内存是物理内存中的一段内存空间,而物理内存是由内核进行维护的,所以进程必须向操作系统申请一块物理内存。
shmget函数
使用此函数可以向内核申请物理内存
int shmget(key_t key,size_t size,int shmflg)
//key:IPC对象使用的键值,ftok()函数生成一个唯一的键值key
//size:新的共享内存段的大小,其值等于 ...
VTK入门系列之——隐式布尔操作
好的,下面是一篇结合你提供的代码(BooleanOperationImplicitFunctions.cxx)撰写的科普文章,主题为“VTK隐式布尔操作的科普与应用”。
用VTK进行隐式布尔操作:三维建模的另一种可能
在三维建模和科学可视化中,我们经常需要将多个几何体组合为更复杂的形状,例如并集、交集、差集等操作。通常,这种操作会在显式几何( ...
C++ 限制模板实参类型
有时候我们编写一个模板,希望用户使用我们期望的类型来实例化它,就需要对实参进行检查,限制不满足条件的实例化版本,同时给出便于理解的编译时信息。
对于 C++20 后的版本,可以将条件包装为concept:
代码
template<typename T>
concept check = requires(T t)
{
T{};//可以默认构造
typename T::value_type;//定 ...
消息队列的函数接口
ipcmk命令
此命令可以创建ipc对象
ipcmk -Q //用于创建消息队列
msgget()函数
此函数可以获得之前创建的消息队列的标识符
int msgget(key_t key,int msgflg)
//key:指的是要创建的消息队列的key键值,键值类型key_t其实在内核源码中指的是int类型
//msgflg:创建消息队列的标志
//其中IPC_CREAT指的是如果消息队列不存在则创 ...