自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 收藏
  • 关注

原创 Python项目移到Linux环境下出现ModuleNotFoundError: No module named ‘xxx‘解决方案

因为python在解释包的时候会给本文件夹也就是本module下的所有文件建立一个索引放在当前路径下的__init__.py文件中,如果没有module的文件索引,我们即使import了指定的包,解释器还是找不到这个module下的文件的,因而我们一般会在每个文件夹下建一个空的__init__.py文件。如果一个文件夹下没有__init__.py文件,不会被当做一个module。解决方法:检查一下待导入的包的根目录是否存在一个__init__.py文件,没有的话建一个空的__init__.py文件即可。

2023-11-09 10:01:17 1404

原创 linux环境下查看程序为什么被kill

使用命令dmesg | tail -7。

2023-10-24 17:07:52 159

原创 C++中std::remove_reference

例如,当实现一个使用 type_traits 的模板时,需要根据输入类型是否是引用类型来进行不同的处理。头文件中的一个类型萃取工具,用于从一个类型中移除引用(Reference)特性。它返回一个新的类型,该类型是从原始类型中移除了引用特性后得到的。移除它们的引用特性后,分别变成了 int 和 const bool 类型。具体来说,如果输入的类型T是一个引用类型,即T存在引用特性,则。的情况,我们可以看到它们都实际上是引用类型,但当使用。是一个const bool类型的引用、是一个int类型的引用、

2023-05-26 15:59:03 1549

原创 C++中std::is_constructible的使用

其中,T是待检查的类型,Args是构造类型所需的参数列表。is_constructible的返回值是一个std::integral_constant类型的实例,代表检查结果,is_constructible_v是is_constructible的一种快捷方式,可以直接获取该实例的值。解释:A类可以通过int类型的参数构造,能够通过float类型的参数构造。std::is_constructible是C++11标准中的类型萃取工具之一,用于检查可以在某些条件下构造给定类型的对象。

2023-05-26 15:58:45 794

原创 C++中std::enable_if的使用

使用std::enable_if,我们可以通过条件检查来指定哪个函数模板将被编译器选择。std::enable_if是一个类型萃取工具,用于在编译时根据某些条件确定是否启用或禁用函数的模板重载。,否则,它不提供成员类型。因此,我们可以在函数模板中使用std::enable_if来控制编译器是否选择特定模板重载。上面的代码通过static_assert在编译时强制执行一个条件检查,如果条件不满足,则会产生一个编译时错误。当条件B为true时,std::enable_if模板的特化版本将具有成员类型。

2023-05-26 15:57:29 448

原创 C++中std::decay如何使用

std::decay是一个类型萃取工具,它的作用是返回一个类型,这个类型是原始类型的"衰减"(decay)版本,可以理解为去掉了某些"修饰符"的类型。否则,如果T是const或volatile限定符修饰的类型,则会去掉这些限定符。否则,如果T是函数类型,则它会将T衰减为指向函数指针的类型。如果T是数组类型,则它会将T衰减为指向元素类型的指针类型。否则,如果T是引用类型,则它会将T衰减为对应的非引用类型。

2023-05-26 15:55:21 628

原创 centoss升级g++、gcc版本

现在你的 CentOS 系统就可以编译支持 C++17 的代码了。你可以使用 g++(GCC)编译器来编译 C++17 代码了。使用下面的命令安装 GCC 版本。

2023-05-26 15:54:50 823

原创 C++中std::reference_wrapper如何使用

std::reference_wrapper 是一个模板类,它包装了一个引用,并以可调用对象的方式提供了对该引用的访问。上面代码通过 std::ref 将 int 和 std::string 引用包装成 std::reference_wrapper 类型,并将它们解包到 x 和 y 变量中。在 C++17 中,std::reference_wrapper 还有一个非常有用的应用,就是在结构化绑定中使用,可以将引用包装成 std::reference_wrapper 类型,然后进行解包操作。

2023-05-26 15:54:39 180

原创 Nginx部署Web项目在Linux环境,访问出现502错误

Nginx部署前端项目,出现502错误

2022-11-25 09:41:20 1731

原创 G++编译时对有返回值的函数,但没有return语句时,不报错

g++编译对有返回值的函数,但没有返回值时,不报错

2022-11-15 15:54:31 700

原创 Coggle 30 Days of ML(Spaceship Titanic)

Coggle 30 Days of ML(22年10月)

2022-10-19 18:19:51 593

原创 Go之gob

gob

2022-07-06 22:44:19 312

原创 容器方式启动Influxdb并持久化数据的目录

持久化应挂载的目录:“/var/lib/influxdb2”“/etc/influxdb2/config.yml”

2022-03-15 21:15:32 822

原创 通过dockerAPI接口获取stats数据并处理

docker的stats数据处理

2021-12-30 16:29:03 876 1

原创 git放弃本地修改,强制拉取更新

git强制更新

2021-12-30 16:19:52 345

原创 Java项目打包成jar包时指定启动的main函数

方法一语法:java -cp test.jar com.hk.app.Application解释:java -cp jar包 启动包路径方法二修改pom.xml文件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI

2021-09-13 10:11:01 609

原创 root权限下修改文件权限遇到 chmod: changing permissions of ‘***‘: Operation not permitted

使用lsattr可用来查看文件的属性:lsattr filename如果文件属性中有i与a,或者有其中的一个可以使用chattr去掉这属性:chattr -ia filename此时再次使用chmod命令即可更改文件的权限。该方法对于文件目录同样适用,但是文件目录使用lsattr命令查看属性的时候并没有反应,但是使用chattr命令去掉ia属性之后,能够成功使用chmod更改权限。如果想要恢复ia属性,使用:chattr +ia filename...

2021-08-27 14:10:21 4436

原创 LeetCode:访问所有节点的最短路径【847】

题目描述:存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号。给你一个数组 graph 表示这个图。其中,graph[i] 是一个列表,由所有与节点 i 直接相连的节点组成。返回能够访问所有节点的最短路径的长度。你可以在任一节点开始和停止,也可以多次重访节点,并且可以重用边。示例 1:输入:[[1,2,3],[0],[0],[0]]输出:4解释:一个可能的路径为 [1,0,2,0,3]示例 2:输入:[[1],[0,2,4],[1,3,4],[2],[1,2.

2021-08-06 13:11:15 176

原创 题解——1713. 得到子序列的最少操作次数

题目:给你一个数组 target ,包含若干 互不相同 的整数,以及另一个整数数组 arr ,arr 可能 包含重复元素。每一次操作中,你可以在 arr 的任意位置插入任一整数。比方说,如果 arr = [1,4,1,2] ,那么你可以在中间添加 3 得到 [1,4,3,1,2] 。你可以在数组最开始或最后面添加整数。请你返回 最少 操作次数,使得 target 成为 arr 的一个子序列。一个数组的 子序列 指的是删除原数组的某些元素(可能一个元素都不删除),同时不改变其余元素的相对顺序得到的数.

2021-07-26 16:21:27 106

原创 初识__thread关键字

__thread是GCC内置的线程局部存储设施,__thread变量每一个线程有一份独立实体,各个线程的值互不干扰。可以用来修饰那些带有全局性且值可能变,但是各线程独立不干扰的变量;只能修饰POD类型(类似整型指针的标量),不能修饰class类型,因为无法自动调用构造函数和析构函数;__thread限定符可以单独使用,也可带有extern或static限定符,但不能带有其它存储类型的限定符。__thread可用于全局的静态文件作用域,静态函数作用域或一个类中的静态数据成员。不能用于块作用域,自动或非.

2021-07-13 22:48:41 232

原创 C++线程池实现

#pragma once#include <thread>#include <queue>#include <vector>#include <atomic>#include <future>#include <functional>#include <stdexcept>#include <condition_variable>#define THREADPOOL_MAX_NUM 16cl.

2021-05-26 17:30:19 67

原创 Redis的三种特殊数据类型

三种特殊数据类型geospatialhyperloglogbitmaps

2021-04-27 22:13:35 80

原创 Redis的五大基本数据类型

有关Redis-Key的一些常用命令和Redis的五大基本数据类型

2021-04-26 17:34:42 107

原创 redis基础知识

基础的知识redis默认有16个数据库默认使用第0个,可以使用select进行切换[root@VM-8-12-centos ~]# redis-cli -p 6379127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> select 0 切换数据库OK127.0.0.1:6379> get 2"sss"127.0.0.1:6379> DBSIZE 数据库大小(integer) 1127.0.0.1:6379> s

2021-04-26 17:28:49 48

原创 剑指 Offer 43. 1~n 整数中 1 出现的次数

题目链接:https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。题解:cur=0,count = high*i;cur=1,count=high*i+low+1;cur>1,count=high*i+i需要对数字进行观察找规律。

2021-03-21 16:55:42 70

原创 位图法解决查重问题

位图法介绍C++STL中有相应的bitset容器,其实就是位示图法用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。使用位图法处理问题,需要事先得知数据中最大值是多少。如果最大值Max=100000,则unsigned char数组大小size=Max/8+1当记录一个数字时需要计算其字节位置和位位置。// 计算整数应该放置的字节位,即数组下标int index = num / 8; // 计算对应字节的位位置int offs

2021-03-16 21:47:14 254

原创 C++构造函数不可以为虚函数的原因

1、虚函数相应一个指向vtable虚函数表的指针,但是这个指向vtable的指针事实上是存储在对象的内存空间的。假设构造函数是虚的,就须要通过 vtable来调用,但是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。2、虚函数的作用在于通过子类的指针或引用来调用父类的那个成员函数。而构造函数是在创建对象时自己主动调用的,不可能通过子类的指针或者引用去调用。...

2021-03-16 19:43:21 331

转载 详解new与malloc的10点区别

前言几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了一下自由存储区与堆的区别。回来后感觉这个问题其实回答得不怎么好,因为关于new与malloc的区别实际上很多。面试期间刚好是刚期末考完,之后是几个课设没时间去整理。今天花了点时间整

2021-03-16 19:14:56 193 1

原创 子串分值和

试题H:子串分值和【问题描述】对于一个字符串 S,我们定义 S 的分值 f(S) 为 S 中出现的不同的字符个数。例如 f(”aba”)=2,f(”abc”)=3,f(”aaa”)=1。 现在给定一个字符串 S[0..n−1](长度为 n),请你计算对于所有 S 的非空 子串 S[i..j](0≤i≤j<n),f(S[i..j]) 的和是多少。【输入格式】输入一行包含一个由小写字母组成的字符串 S【输出格式】输出一个整数表示答案。【样例输入】ababc【

2021-03-10 21:55:52 1228 2

原创 错排公式——n封信放入n个信封,要求全部放错,共有多少种放法

错排递推公式:F(n)=(n-1)(F(n-1)+F(n-2));假设前三封信为a,b,c......;信封为A,B,C,.......;则a不能放进A,b不能放进B。若a放进B。b放进的情况分为两种:b放进A;b不放进A;若为第一种情况,则方案数为F(n-2),因为a放进B,b放进A满足条件,只需要考虑剩下的n-2个的情况若为第二种情况,则方案数为F(n-1),因为a放进B满足条件,而“b不能放进A”也就相当于原先的“b不能放进B”,需要考虑剩下的n-1个情况综上所述,信a可以与除

2021-03-10 21:09:15 7341 2

原创 智能指针

智能指针智能指针 保证能够做到资源的自动释放利用栈上的对象出作用域自动析构的特征,来做到自动释放的分为两种:不带引用计数的智能指针和带引用计数的智能指针1、不带引用计数的智能指针auto_ptr不推荐使用,当拷贝构造或者赋值时,指针所有权会转移scoped_ptr只能使用单个构造源码中:scoped_ptr(const scoped_ptr<T>&)=delete;scoped_ptr<T>& operator=(const

2021-03-09 18:25:32 52

原创 实现带引用计数的智能指针

#include <iostream>#include <memory>using namespace std;//对资源引用计数的类template<typename T>class RefCnt{public: RefCnt(T *ptr = nullptr):mptr(ptr) { if(mptr!=nullptr) mcount=1; } void addRef(){ mcount++;} i.

2021-03-09 18:05:30 98

原创 实现简单的不带引用计数的智能指针

#include <iostream>#include <memory>using namespace std;template<typename T>class CSmartPtr{public: CSmartPtr(T *ptr = nullptr):mptr(ptr) { } ~CSmartPtr() { delete mptr; mptr=nullptr; } .

2021-03-09 17:52:48 68

原创 类模板案例——通用数组

实现一个通用的数组类,要求如下:可以对内置数据类型以及自定义数据类型进行存储将数组中的数据存储到堆区提供对应的拷贝构造函数以及operator=防止浅拷贝问题提供尾插法和尾删法对数组中的数据进行增加和删除可以通过下标的方式访问数组中的元素可以获取数组的容量和当前元素的个数类模板代码:Array.hpp#pragma once#include <iostream>using namespace std;template<class T>cla

2021-01-18 18:10:35 307

原创 牛客挑战赛45——C 友人 题解

题目链接:https://ac.nowcoder.com/acm/contest/8563/C题解:首先我们要知道z^k=z+k-2*(z&k);则只进行一次操作的代价:(r-l+1)*((z^k)+k-z)=2*(r-l+1)(k-z&k).对于k-z&k,我们要令其尽可能的小,则z要是k的较大的子集。那么我们枚举k的子集并保存下来,对其排序。然后我们枚举i=0->n,直到等差数列前i个数之和大于y对于每一个i,我们计算其前i个数之和s[i],为了满足整

2020-11-14 00:20:58 160

原创 数论——欧拉函数讲解及模板

欧拉函数:对于任意正整数N,把小于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,称作对N的欧拉函数,记作φ(n)。注:互质为两者没有除1外的公因数。规定φ(1)=1。欧拉函数的性质:1、若p为质数,则2、若a为质数且a|x,则2、若a与b互质,则求一个数的欧拉函数值:对一个数进行质因数分解:X=p1^k1*p2^k2...pn^kn由性质1可知φ(X)=p1^(k1-1)(p1-1)*p2^(k2-1)(p2-1)...pn^(kn-1)(pn-1)=X*(p

2020-11-13 14:34:41 329 1

原创 数论——快速乘(模板)

快速乘用途:计算a*b%mod,而且a*b大于long long。基本原理:计算机中计算加法的速度往往比乘法快多了,而快速乘就是通过乘法分配律将a*b分解成多项式相加。举个枣子:20*13,将13转化成二进制1101,则就是20*2^0+20*2^2+20*2^3。(类似于快速幂)void quick_mulitiply(ll a,ll b,ll mod) { ll res=0; while(b) { if(b&1) res=(res+a)%mod; a=(a+a)%mod

2020-11-13 00:30:00 281

原创 线性基整理

线形基(来自OI Wiki):线性基是向量空间的一组基,通常可以解决有关异或的一些题目。通俗一点的讲法就是由一个集合构造出来的另一个集合,它有以下几个性质: 线性基的元素能相互异或得到原集合的元素的所有相互异或得到的值。 线性基是满足性质 1 的最小的集合。 线性基没有异或和为 0 的子集。 线性基中每个元素的异或方案唯一,也就是说,线性基中不同的异或组合异或出的数都是不一样的。 线性基中每个元素的二进制最高位互不相同。 对于线性基的数组a[],a[

2020-11-10 15:34:50 121

原创 树上启发式合并模板(更好的暴力)

以CF600E Lomsat gelral为例#include <bits/stdc++.h>using namespace std;const int maxn=1e5+10;typedef long long ll;int a[maxn],sz[maxn],son[maxn];int n;vector<int> G[maxn];//遍历确定轻重儿子 void dfs(int u,int fa){ sz[u]=1; for(int i=0;i<G[u

2020-11-10 11:26:55 118

原创 cf 959F Mahmoud and Ehab and yet another xor task(线性基)

题意:对一个一个长度为n的数组,有q个询问:前l个数的子序列异或和为x的有多少个?结果对1e9+7取余首先介绍一下线形基(来自OI Wiki):线性基是向量空间的一组基,通常可以解决有关异或的一些题目。通俗一点的讲法就是由一个集合构造出来的另一个集合,它有以下几个性质: 线性基的元素能相互异或得到原集合的元素的所有相互异或得到的值。 线性基是满足性质 1 的最小的集合。 线性基没有异或和为 0 的子集。 线性基中每个元素的异或方案唯一,也就是说,线性基中不同的

2020-11-06 09:13:53 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除