
C++
文章平均质量分 52
DWQY
这个作者很懒,什么都没留下…
展开
-
C++获取当前时间(使用C库)
C++获取当前时间(使用C库)原创 2023-07-02 12:08:33 · 255 阅读 · 0 评论 -
C++中开多线程模板
C++中开多线程模板!!!原创 2023-07-02 11:55:20 · 110 阅读 · 0 评论 -
C++简单实现http服务端客户端传输实例
C++简单实现http服务端客户端传输实例原创 2023-04-30 13:49:06 · 770 阅读 · 0 评论 -
C/C++读写文件示例
C/C++读写文件示例原创 2023-04-17 12:07:29 · 287 阅读 · 0 评论 -
C++中string、char*、const char *相互转化
C++中string、char*、const char *相互转化原创 2023-04-17 11:05:16 · 354 阅读 · 0 评论 -
Linux下C/C++获得当前时间(秒/毫秒)
【代码】Linux下C/C++获得当前时间(秒/毫秒)原创 2023-03-31 21:58:33 · 4111 阅读 · 0 评论 -
Linux下C/C++删除指定文件夹下所有文件
【代码】Linux下C/C++删除指定文件夹下所有文件。原创 2023-03-31 21:54:17 · 814 阅读 · 0 评论 -
Linux下C/C++读取文件夹下所有文件数据到一个文件中
【代码】Linux下C/C++读取文件夹下所有文件数据到一个文件中。原创 2023-03-31 21:52:05 · 1062 阅读 · 0 评论 -
C++11特性——thread_local
thread_local是C++11引入的新特性,是一个关键字,用于修饰变量。在使用时需要加入头文件:#include< thread>thread_local关键字和static、extern关键字在使用上是不冲突的,例如:thread_local static a;原创 2022-09-04 21:04:58 · 5309 阅读 · 0 评论 -
C++11特性——可变参数
在传统的C和C++中,函数形参和实参的个数不仅需要保持一致,而且需要显式定义出来,是固定的。在C++11中增加了可变参数这种特性,这篇文章就学习下C++11的可变参数。C++11的可变形参提供了两种使用场景:1.个数未知,但所有类型相同2.类型可能不同,可变参数模板。原创 2022-08-19 13:29:51 · 7767 阅读 · 0 评论 -
C++基础知识点
零散的C++知识~原创 2022-08-07 19:12:19 · 285 阅读 · 0 评论 -
C++11特性——类型推导
在C++11中引入类型推导,类型推导能够给编程带来极大的方便性,特别是面对一些复杂的数据类型,不需要再去一步步的确定具体的类型。和,本篇文章就主要介绍各自的用法。原创 2022-08-05 09:12:02 · 361 阅读 · 0 评论 -
cmake入门
对于cmake的定义就是可以将多个hpp、cpp组合构建成一个大的工程项目,按照CMakeLists.txt所设定的编译规则,最终会生成makefile文件。项目执行的时候就会按照这个makefile文件的编译过程来执行。关于使用cmake生成可执行文件的流程,在之前的文章cmake,CMakeLists.txt,make,makefile的关系有过介绍。...原创 2022-08-03 11:13:43 · 2633 阅读 · 0 评论 -
C++11特性——右值引用
首先介绍下左右值(我发现自己学了好长时间都没有对两者进行区分~)对于左值、右值可以简单的以放在等号左右为区分,等号左边的是左值,等号右边的是右值。再来详细的介绍下各自的特点:左值:1)左值可以取地址2)左值可以修改3)左值可以放在等号左右两边右值:1)右值不可以取地址2)右值不可以直接修改3)右值只能放在等号右边4)右值往往是没有名称的再来举几个实例:左值举例:int a;int a = 3;上面的a都是左值纯右值、将亡值。...原创 2022-08-03 09:59:43 · 6921 阅读 · 2 评论 -
C++报错illegal instruction
环境描述:ubuntu18.04 + cmake version 3.10.2 + g++ version 7.5.0 场景描述:跑程序的时候遇到了一个错误:illegal instruction。使用cmake进行编译,编译是通过的,但是运行可执行文件的时候就会报错。用gdb去查发现停在了一个很普通的函数上(而且让我最纳闷的是我之前用g++编译,最后是可以运行的) 最后上网找到了答案(有点儿蠢),是我在int类型的函数中没有写return。这个编译的时候并没有报错,但提示了一个warning原创 2022-07-01 12:47:32 · 2043 阅读 · 0 评论 -
C++11特性——lambda表达式
.. }使用STL的sort()时,要自定义排序方法。这个时候如果排序策略中要使用function()函数中的局部变量就会特别麻烦。而使用lambda表达式就可以直接进行参数传递。当然这只是lambda表达式的冰山一角,这篇文章会更详细的介绍一下,希望这篇文章能够说明白几个问题:1.lambda表达式是什么以及如何使用?2.lambda表达式使用时的一些原理。因为笔者常用C++,所以就使用C++作为举例的语言啦~...原创 2022-06-29 16:49:15 · 899 阅读 · 0 评论 -
C++:std::function和std::bind实现跨文件回调函数
文件结构如下:两个类(A,B) 分别对应h和cpp(A.h A.cpp B.h B.cpp),A中定义两个函数funcA和funcB, B中定义funcC。funcA调用funcC,funcC调用funcB。funcC调用funcB使用回调函数思路,在funcA调用funcC时就传入funcB的函数指针。test.cpp是外界调用。具体的源代码如下:A.h#ifndef A_H#define A_H#include<iostream>#include<functional&g原创 2022-05-31 13:26:41 · 573 阅读 · 1 评论 -
C++:通过extern实现多文件共享变量
直接用一个小demo表示了:A.h声明,A.cpp定义,B.cpp使用A.h#include<iostream>extern int C;A.cpp#include<iostream>#include"A.h"int C = 100;B.cpp#include<iostream>#include"A.h"#include"A.cpp"extern int C;int main() { std::cout << "C原创 2022-05-30 10:59:58 · 228 阅读 · 0 评论 -
vs code中C/C++环境配置
本篇文章用于笔者自己记录配置过程,比较简单,详细过程请参照其他博主文章下载Mingw64,下载网址下载这个,解压后,直接复制(环境变量配置bin路径)注意:MinGW8.1不支持万能头文件bits/stdc++.h。所以选择下载7.3文件配置c_cpp_properties.json{ "configurations": [ { "name": "Win32", "includePath": [原创 2022-05-23 19:31:58 · 1407 阅读 · 0 评论 -
C++读取一行数据
cin用惯了,碰到要读一行里面还有空格的突然就懵了。(cin读到空格就停了~)。写一篇记录一下吧! C++中提供了一些读取一行的方式,如下: 先做个声明: string a = “”; char b[500];cin.getline(b, sizeof(b)); // 这种方式只能读char数组getline(cin, a); // 这种方式可以读string 其实还有C语言中的gets(),C++中还有get()都可以读一行,但有个常用的就行了吧,嘿嘿~...原创 2021-04-01 17:25:46 · 4382 阅读 · 0 评论 -
经典拓扑排序模板
拓扑排序是图论中一种典型的算法。通过拓扑排序可以梳理图的层次结构。像什么工期完成类的图论任务,就是典型的应用。第二个应用就是判断图中是否存在环路的问题。 程序中建图的方式是邻接表形式,代码如下:vector<vector<int> > graph(n, vector<int>{}); 下面是拓扑排序的模板: vector<vector<int> > graph(n, vector<int>{}); 根据所给有向图原创 2021-03-22 22:35:25 · 535 阅读 · 0 评论 -
优先队列实现迪杰特斯拉模板
迪杰特斯拉还是比较常用的最短路径算法。之前学数据结构时写的代码很冗余,总是记不住。今天有时间,整理出一个简练的模板吧! 实现的方式对应了优先队列,模板中包括建图的方法(其实哪种都可以)。本文用的是:vector< unordered_map<int, int>> graph(n); // 本质是邻接表 模板如下:void DIJ() { /* 建图,建图方式有几种,尽量使用邻接表 * 1.vector<vector<int>> grap原创 2021-03-21 22:27:34 · 352 阅读 · 0 评论 -
图的DFS和BFS
对于图这个数据结构,最重要的操作就是遍历。常用的遍历方式就是DFS和BFS。总是记不住,今天做个总结。每个人的习惯不一样,我习惯DFS用递归实现,BFS用非递归实现。本文的模板也是针对这两种的(只写关键函数) 无论DFS还是BFS都要有一个访问数组,统计当前节点有没有访问过。本文设为visit。数组大小为节点数n。假设图已建好,名为graph(表示方式是C++中的vector<vector< int>>)DFSvoid DFS(int start) { if (visi原创 2021-03-20 22:48:12 · 151 阅读 · 0 评论 -
最短路径(DIJ)——正反建图/邮递员送信
今天做到了这样一道题:最短路径 去搜了搜,发现这其实还是一道比较经典的图论问题:邮递员送信,二者的区别就是这道题是多次,邮递员送信是1次。所以代码中主函数中增加了一个q变量。 这道题目的特点是每次到达一个地方,都要返回起点再出发。很容易就把它归类为最短路径问题。这道题的实现思想就是正反建图。 算法思想:对于所有节点可以拆分成一个一个看。一去一回,去的过程可理解成出发点u到v的最短路径。也就是正向建图。回的过程,将所有的边反向,再计算u到v的最短路径(其实我也不是特别懂这个思想啦~)。 上原创 2021-03-15 23:02:59 · 854 阅读 · 0 评论 -
最小生成树——克鲁斯卡尔算法
最小生成树的概念就不说了,本文主要是克鲁斯卡尔算法实现,而且用到了并查集思想。相较于prim算法,克鲁斯卡尔更容易理解:在不形成环的情况下,选取最小的权值边,直到点的个数减一。对于环的判断就使用并查集思想。本文给出一个模板:#include<bits/stdc++.h>using namespace std;const int max_one = 1000;struct node { int u, v, w; // u, v代表边,w代表权值}bian[max_one];st原创 2021-03-14 23:28:24 · 324 阅读 · 0 评论 -
C++STL常用函数
对于常规编程,不搞骚操作来讲。C++的STL提供给我们很多方便的操作,可以从C语言中一些繁琐的操作中解放出来。这篇文章就简要总结一下STL中常用的及其各自的常用函数。内容涉及:stack,queue,vector,string,unordered_set,unordered_map,set,map。stack简要描述:stack完成的功能是栈,即队列中后进先出头文件:#include定义格式:stack<变量类型> 栈名称; // 例如:stack a;常用函数:Push() //原创 2021-03-08 18:30:42 · 1135 阅读 · 0 评论