进程相关的函数
进程
fork函数
此函数可以创建一个进程
pid_t fork(void)//使用此函数可以创建一个进程
//ret:成功在父进程中返回子进程的pid,在子进程中返回0;失败返回-1
getpid函数
此函数可以得到当前进程的pid
pid_t getpid(void)
//ret:返回当前进程的pid
getppid函数
此函数可以得到当前进程的父进程的pid
pid_t getppid(void)
/ ...
AtCoder Beginner Contest 404 C-G(无F)题解
C. Cycle Graph?
题意
给你一个 \(N\) 个顶点 \(M\) 条边的简单(无重边、自环)无向图,第 \(i\) 条边连接节点 \(A_i\) 和 \(B_i\),判断这个图是不是一个环。
思路
首先一个图是环,要满足点数等于边数,即 \(N=M\);
其次,这个图必须连通,可以通过 \(\text{DFS}\) 或 \(\text{BFS}\) 搜索判断是否连通(从任意一点开始 ...
原子操作
定义
原子操作(Atomic Operation)是指在执行过程中不会被中断的操作。换句话说,它是一个不可分割的操作,要么全部完成,要么全部不执行,不会出现部分完成的情况。原子操作在多线程编程和并发环境中非常重要,它可以避免多个线程同时访问共享资源时出现的竞争条件(Race Condition)。
原子操作的常见应用场景
多线程环 ...
平衡树
平衡树?何方神圣
平时我们最害怕的是什么!暴力,没错,暴力的的时间复杂度通常会高得可怕,甚至使你一分不得,在“树论”上也是一样的,倘若使用普通的暴力,很难应对极端情况(比如退化成链或者接近于链),那有没有什么方法来优化掉树上暴力呢?设想一下:树上暴力之所以时间复杂度高,还不是因为树长得太奇怪了?既然 ...
[技术探索者手记] C++自学之路 × linux下构建自己的个性化的FFmpeg库
我是一名.NET开发者,最近开始学习C++。目前,我已经掌握了C++的基础语法和入门知识,并对FFmpeg产生了浓厚的兴趣。接下来,我计划自学与FFmpeg相关的技术内容,并记录自己的学习过程。欢迎大家提出宝贵意见,我会虚心接受并采纳大家的建议。谢谢!我是一名.NET开发者,最近开始学习C++。目前,我已经掌握了C++的基础语法 ...
最小生成树 & 严格次小生成树
最小生成树
何为最小生成树?
有一类问题:给定一张图,可以删除若干条边,在不改变连通性(一般是全联通)的情况下,权值和最小的方案是什么?没错,这就是最小生成树问题(MST问题)。那么基本性质其实连聪明的小学生都能看出来,应当使得最后留下 \(n-1\) 条边且没有环路得到情况下才有可能构成生成树,这便是Kruskal的 ...
final year project:C++手写numpy并移植到RISC-V上——纪念我在中科院实习的日子
我毕设做的项目是用C++去实现一个Numpy,因为我是大数据专业,Numpy又是跟数据分析有关的工具,所以我打算自己动手去实现一个小型的Numpy,目前代码规模大概在六千多行左右,并且可以成功移植到OpenEuler RISC-V上面。在这个项目当中,我实现了比较多的数学函数,并且用到了各种高性能有关的技术,如:SIMD,OpenMP,Op ...
C++ ADL 与 模板
什么是 ADL
ADL(Argument Dependent Lookup),参数依赖查找,明确的意思是依赖参数的函数查找,即对于函数调用,不仅会依照常规的名称查找规则,还会在函数参数所在的命名空间内查找。
我们常用的 std::cout << "..." 其实就是一个 ADL 的例子,std::cout,查看一下 STL 的代码,它是std::basic_ostream<char, std::char_tr ...
牛客周赛91题解
牛客周赛91
https://ac.nowcoder.com/acm/contest/108038#question
A.while
https://ac.nowcoder.com/acm/contest/108038/A
签到题:只需要判断当前字符串与while有多少个位置上的字符不相同即可。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;cin>>s;
int ans=0;
if(s[0]!='w') ans+ ...
指向const的指针和const指针的区别
1. 指向常量的指针(指向const的指针)
指向const的指针,不能改变其所指变量(对象)的值,或者说不能通过这个指向const的指针去改变所指的变量(对象)的值
// 指向const的指针,不能通过*cptr修改指向的变量(对象)的值
const double pi = 3.14;
const double *cptr = π
// 错误,不能通过解引用指针来修改所指变量(对象)的 ...
C++中的map vs unordered_map:选错容器让你的程序慢10倍!
大家好!今天咱们聊一个看似简单却经常被忽视的话题:C++中的map和unordered_map到底有啥区别?
选错了容器,你的程序可能就慢了 10 倍不止!这可不是危言耸听,而是实打实的性能差距。
一、一个真实的"血泪"故事
前几天我同事小王一脸沮丧地走过来:"我的程序怎么这么慢啊,数据量一大就卡得不行..."
我瞄了一眼他的代码, ...
60个 Linux C/C++ 实战小项目,挑战年薪30万+
大家好啊!我是小康。
最近公众号后台收到好多小伙伴的私信:
"小康哥,我已经把《C++ Primer》啃完了,Linux 环境也玩得差不多了,但就是不知道该做啥项目练手..."
"感觉自己懂了一堆理论,但一到写项目就懵圈,有没有适合新手的 C++ 小项目推荐啊?"
"能不能推荐点代码量不太大的项目?我怕一下子看到上万行代码会被吓跑 ...
C语言操作数据库
基于C语言的控制数据库脚本
开发环境基础
编译器:Visual Studio Community 2022
数据库:MySQL 8.0.37 Community
前戏准备
复制文件和路径
找到MYSQL的安装目录
复制“lib文件夹里的libmysql.dll文件”
例:
复制目录下include和lib两个文件夹的路径
例:
D:\MySQL\include
D:\MySQL\bin
VS环境配置
在Visual Stud ...
树链剖分/重链剖分
什么是树链剖分/重链剖分
我们可以弄一道例题来看看:
现在给定一棵 \(n(1 \le n \le 10^5)\) 节点的树,每个节点上有一个数值,现在你可以进行 $m ( 1 \le m \le 10^5) $ 次操作。格式如下:
1 x z 表示将 \(x\) 到 \(y\) 最短路径上的节点值加上 \(z\) 。
2 x y 表示树求 \(x\) 到 \(y\) 最短路径上的权值和。
3 x y ...
01 C++ 程序设计基础
头文件
iostream
cin/cout 输入输出流对象
<< 流插入操作符, >> 流提取操作符
iomanip
流操作符
功能
stew(n)
设置字符宽度(仅对一项有效),可用于cin
setprecision(n)
设置浮点数精度(对多项有效)
fixed
固定小数点(对多项有效)
hex oct dec
十六进制、八进制、十进制
scientific
科学计数法
...
技术书籍推荐(003):电子书免费下载
40. C++标准程序库——自修教程与参考手册 免费 电子书 PDF 下载
下载地址: http://t-book.sunlogging.com/2025/03/29/book/book_0040/
书籍简介: 本书是深入了解C++标准程序库的重要参考书籍,兼具教程与手册的双重功能。
作为教程,它循序渐进地引导读者学习C++标准程序库。开篇介绍标准程序库的基本概念与整体架构,使 ...
函数指针与指针函数的区别
1. 函数指针
首先,它是一个指针,这个指针指向一个函数,或者说这个指针存放着函数的地址
#include <iostream>
// 声明函数
int add(int x, int y);
// 定义函数
int add(int x, int y)
{
return x + y;
}
int main()
{
// 将函数指针ptr指向函数add,或者说将函数add的地址赋给函数指针ptr,此时称:指针指 ...
关于快速选择排序程序第一趟划分流程分析
关于快速选择排序程序第一趟划分流程分析
问题1:{28,16,32,12,60,2,5,72}选择28作为基准第一趟划分分析
下面详细分析数组 {28, 16, 32, 12, 60, 2, 5, 72} 以 28 作为基准进行第一趟划分的过程。
初始状态
[28, 16, 32, 12, 60, 2, 5, 72]
选择第一个元素 28 作为基准元素。
初始化指针:
left 指针从 low + 1 ...
文件IO-操作函数(2)
写入文件
字符写入
//c:要写入的字符
//stream:写入的文件指针
//返回值:成功返回写入的字符,失败返回EOF
int fputs(int c,FILE *stream);
int puts(int c,FILE *stream);
int putchar(int c);
按行写入
//s:自定义缓冲区指针
//stream:被写入数据的文件指针
//返回值:成功返回非负整数,失败返回EOF
int fputs(const ...
文件IO-文件操作(1)
打开文件
打开文件函数说明
//pathname->待打开的文件的路径
//mode->访问文件的权限
//"r":以只读的方式打开,文件必须存在
//"r+":以读写的方式打开,文件必须存在
//"w":以只写的方式打开,如果文件不存在,则创建;如果存在,内容会被清空
//"w+":以读写的方式打开,如果文件不存在,则创建;如果存在,内容会被清空
/ ...