自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (C++) LeetCode 39:组合问题

LeetCode 39题

2022-09-18 10:39:19 656 1

原创 P4_toturial练习1问题:ModuleNotFoundError: No module named ‘p4.tmp‘

P4 tutorial 练习1

2022-08-18 18:38:30 1094 1

原创 P4 安装bmv2 详细教程(更新中。。)

Ubuntu20.04安装p4c-bmv2教程

2022-06-30 09:19:11 2193

转载 基数估计算法简介

基数估计算法简介注:本文是之前工作时在团队内分享的一个PPT的文字版本.下文中的sqrt表示开根号(sqrt(4)=2),m^n表示m的n次方什么是基数(Cardinality)基数指的是一个可重复集合中不重复元素的个数。什么是基数计算给定一个含有重复元素的有限集合,计算其不重复元素的个数。应用场景举例:某家店铺今天有多少不同用户访问 某家店铺今天接待了多少不同买家简单来说就是各种UV的计算常见的实现方式Hash集合 + 计数 或者 BitMap + 计数缺陷

2022-05-20 10:30:24 1510

原创 Python安装docx,执行时出现moduleNotFoundError:No module named ‘exceptions‘

今天在安装docx包的时候出现了:moduleNotFoundError:No module named 'exceptions' 问题,原本用的是anaconda安装的,但是openpyxl总是装不好,所以就还是换回了原来的python。对于找不到exceptions模块的问题,直接在setting里找到下载库的东西,然后下载一个python-docx库就可以了。...

2022-05-12 20:06:26 4786 1

原创 LeetCode 剑指 05 :替换空格

题目:思路:这个题我是直接另外用了一个字符串变量来存储,这样的话就另外需要O(n)的空间。也可以直接在同一个字符串s上进行操作,不过那样的话就需要先对字符串的长度进行扩充。扩充可以调用库函数 resize()实现。当利用 resize()扩容后就是给字符串进行替换操作了,这里很容易想到可以用双指针的方法,但是如果双指针我们是从前往后移动的话,那么每次需要替换空格的时候都要把后面的数据往后挪3位,如此一来时间复杂度相当于就是O(n^2)了,那还不如再创一个字符串呢。。。所以,这里的小技巧是双指

2022-05-10 19:52:43 183

原创 LeetCode 151:颠倒字符串中的单词

题目:思路:这道题实际上还是对字符串的翻转的操作,只不过限制又加多了一些,单词与单词之间有多余的空格,题目要求空格也要规整,这道题目我的思路是,先把单词里多余的空格删掉,那么这里就分为了三种情况,一种是在最前面有多余的空格,需要全部清除,第二种是单词与单词之间有多余的空格,只需要保留一个就可以,第三种就是最后面有多个空格,也全部删掉。关于去除多余的空格我的思路是利用了两个标记来进行判断,判断空格是否多余或者是合法,类似于移除元素那道题,利用双指针把字符串前移到正确的格式,然后start指针的

2022-05-10 14:05:39 256 1

转载 Compressive Sensing

压缩感知(Compressed Sensing),曾今在2008 - 2013那段时间大红大紫,在信号处理,信息论,通信,甚至计算机视觉领域的热度,直逼如今的Deep Learning,几乎称霸了各大信号处理会议和期刊。这波热潮的真正开端,应该是在06-07年,Terence Tao,Candès,Donoho他们几个搞出来的,基于sparsity prior的compressed sensing框架的时候。这套compressed sensing框架和配套理论证明了,在采样率低于critical sa

2022-05-10 10:38:58 269

原创 LeetCode 剑指 Offer 58 - II. 左旋转字符串

思路:这道题可以有两种方法,实际上就是字符串的翻转问题。这里我先对整体翻转,然后再对局部进行翻转,但是这里要注意,局部翻转的时候要注意字符的个数需要进行处理。class Solution {public: string reverseLeftWords(string s, int n) { reverse(s.begin(), s.end()); n = n % s.length(); reverse(s.begin(), s.begin() + (s.length() ..

2022-05-10 10:29:48 153

原创 翻转字符串

对于字符串的问题来说,翻转问题还是比较常见的,在LeetCode里也有这样的问题,需要倒序输出字符串的内容之类的,这种问题有多种解法,这里进行简单的总结。方法1:这种方法的原理思路是,直接创建一个新的字符串,倒序存储原本的字符串的内容,就可以实现字符串的翻转了void reverse1(string s) { string newstr; for (int i = s.size() - 1; i >= 0; i--) { newstr += s[i]; } cout &lt

2022-05-10 10:29:05 369

原创 LeetCode 189:轮转数组

题目:思路:最简单的方法应该是利用for多次将数组的内容一个一个的移动,但是这种方式需要多个双重for循环,比较耗时,所以这里想的方法是尽量在一个for循环中就结束操作,以下分为两种情况,一种是当我要循环的次数少一整个数组长度的一半的时候,还有是超过一半的时候,具体可以看代码,这里有一个要注意的点是,k的次数需要取模(如果是暴力法通过取模可以减少循环的次数),如果k没有取模那么可能就会有错误。代码:class Solution {public: void rotate(vec

2022-05-08 21:33:30 1171

原创 LeetCode 283:移动零

思路:暴力法多次移动肯定是不行的,会超时。提出新的方法,通过快慢指针来实现代码:class Solution {public: void moveZeroes(vector<int>& nums) { int fastIndex=0,slowIndex=0; bool flag=true; while(fastIndex<nums.size()){ if(flag==true){ ..

2022-05-08 21:28:19 584

原创 LeetCode:58. 最后一个单词的长度(C++)

题目:代码:class Solution {public: int stringLength(string str) { int length = 0; while (str[length] != '\0') { length += 1; } return length; } int lengthOfLastWord(string s) { int last

2022-04-27 10:53:36 1064

原创 LeetCode 824: (C++)山羊拉丁文

太久没有写过LeetCode啦,今天刚好突然想起来,就找了道题目写一下,这次是用C++写的,因为最近在复习C++,正好这道题也简单,就写了一下,可能写的不咋样,大家就参考参考就行~题目:我把一些操作都分别用了不同的函数来写,应该也好理解,就不写详细思路了,应该都可以很容易看出来,这里有一个要注意的点就是 a e i o u不光是小写,还有大写也是属于同一种情况,加上就可以了代码:#include<iostream>using namespace std;cla.

2022-04-21 20:11:25 677

原创 fatal error: bits/libc-header-start.h: No such file or directory #include <bits/libc-header-start.h>

在测试p4-ovs时,将p4程序编译成C程序没有问题,但是把C程序编译为.o文件时出现了如下的错误:查找原因,一个博客说法如下:这多半是你所编译的项目是在64位机器上生成32位的项目,你需要安装对应的gcc 32位的库;此时检查gcc一定有-m32的存在;你系统中gcc没有安装multilib 库;使用这个库可以在64位的机器上产生32位的程序或者库文件;你可以选择:apt install gcc-multilib进行完善安装;也可以只编译特定平台的文件: 例如 make x86_6

2022-03-25 11:24:12 2301

原创 插入内核模块时提示:ERROR:could not insert module ...../file.ko : File exits 解决办法

在插入内核模块的时候提示我 文件已经存在,但在这之前我插入内核模块提示我无法正常插入,为了避免模块有问题,所以还是决定删掉原本的模块再插入一次,这里给大家提供一个方法。查看当前的模块有哪些lsmod可以看到里面有正在运行的模块,如果找到了自己要插入的模块,那么执行删除操作sudo rmmod openvswitch然后再重新插入就可以了sudo insmod datapath/linux/openvswitch.ko然后就可以正常插入模块了。...

2022-03-25 10:08:14 7146

转载 OVS安装配置时出现configure: error:……,version newer than 5.0.x is not supported

OVS安装配置出现configure error问题阐述:在安装OVS过程中,需要先./configure对环境进行检查,要构建Linux内核模块,以便能够运行基于内核的交换机,需要在–with-linux上传递内核构建目录的位置。例如,要构建一个运行的Linux实例:./configure --with-linux=/lib/modules/$(uname -r)/build但是过程中出现错误,内容显示:configure: error: Linux kernel in /lib/mo

2022-03-25 09:47:20 653

原创 Linux内核升级(降级)

Linux升级内核的正确姿势很多童鞋在玩耍linux发行版的时候,都会遇到各种各样的问题,比如:网卡不能使用,亮度不能调节,触摸板不能识别,蓝牙不能使用等等,这些关系都和linux的内核有关系。什么是linux内核?Linux内核(英语:Linux kernel),是一种开源的类Unix操作系统宏内核。Linux内核最早是于1991年由芬兰黑客林纳斯·托瓦兹为自己的个人计算机开发的,他当时在Usenet新闻组comp.os.minix登载帖子,这份著名的帖子标志着Linux内核计划的正式开始

2022-03-25 09:44:13 5135 1

转载 Ubuntu20.04 P4-OvS安装教程

P4-OvSGit项目地址:GitHub - osinstom/P4-OvS: Bringing the power of P4 to OvS!安装文档:https://github.com/osinstom/P4-OvS/blob/p4/Documentation/intro/install/general.rst安装步骤#第一步 ==安装依赖项依赖==# apt-get update# sudo apt-get install -y automake cmake libjudy-d

2022-03-25 09:20:14 2001 1

原创 linux切换内核版本

前言做测试,需要在5.8.0的linux内核上才能正常运行,当前操作系统的linux内核为5.13.0-37-generic,需要更改运行的内核版本,所以简单记录一下怎么切换内核版本。环境操作系统:Ubuntu20.04CPU架构:x86_64目标内核版本:5.8.0步骤1. 确认当前操作系统是支持在目标内核版本上运行,这个自行百度吧2. 查看当前使用的内核版本:uname -r当前的内核版本为5.13.0-37-generic ,这里没有截图,大家执行命令后就可以.

2022-03-24 22:31:54 13220

原创 手动安装m4、autoconf、automake、libtool

安装m4wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gztar -xzvf m4-1.4.13.tar.gzcd m4-1.4.13./configure –prefix=/usr/localmake && make install安装autoconfwget http://mirrors.kernel.org/gnu/autoconf/autoconf-2.63.tar.gztar -xzvf autoc

2022-03-22 16:32:41 1286

转载 解决ubuntu安装libssl-dev失败

问题描述在ubuntu进行apt操作时,提示libssl依赖不匹配,如:The following packages have unmet dependencies: libssl-dev : Depends: libssl1.0.0 (= 1.0.1-4ubuntu5.7) but 1.0.1c-3ubuntu2.2 is to be installed Recommends: libssl-doc but it is not going to be install

2022-03-22 14:36:54 3250 2

原创 Ubuntu的.config文件夹在哪?

打开/home目录,按Ctrl+H,就可以看到.config文件夹了

2022-03-19 19:27:30 7446 2

原创 Linux 下检查 VT-d / IOMMU 是否开启

介绍VT-d和IOMMU其实都是指的I/O 虚拟化,只不过前者是Intel的叫法,后者是AMD的叫法:VT-d全称为Intel® Virtualization Technology for Directed I/O IOMMU全称为Input/Output Memory Management Unit这项技术是可以让PCI-e设备的资源直接分配给虚拟机,即PCI直通。举个例子,在虚拟客户机里可以直接访问到物理显卡,性能比使用由VMM/Hypervisor虚拟出来...

2022-03-19 19:22:14 11538

原创 DPDK编译出现错误 error: this statement may fall through [-Werror=implicit-fallthrough=] 解决方法

今天在编译dpdk的时候出现了error: this statement may fall through [-Werror=implicit-fallthrough=]的错误提示,实际上之前就遇到一次,当时也解决了,结果这次又遇到就忘了,又弄了好久,所以干脆就在这里记录一下,以防未来可能还会用到。。。提示这个错误,根据网上的教程提示,说是因为有 Makefile 文件里有 -Werror 这个参数导致的,这个参数会导致一些警告也编程error,所以要找到对应的 Makefile 文件将里面的 -Wer

2022-03-17 22:59:58 9003 3

原创 fatal: remote error: The unauthenticated git protocol on port 9418 is no longer supported.

今天在安装mininet 的时候出现了如下的错误提示某个端口不能再用了,上网找了一下解决方法,然鹅并没有解决到我的问题,包括git config --global url."https://".insteadOf git://这个方式直接导致fatal: unable to access 'https://github.com/mininet/mininet.git/': gnutls_handshake() failed: Error in the pull function.所以

2022-03-16 09:54:24 4467 14

转载 Ubuntu18.04 编译出现fatal error: bits/libc-header-start.h: No such file or directory

apt-get installgcc-multilib , 环境没有完善,安装这个即可

2022-03-14 22:05:23 457

转载 Linux网络虚拟化:1、名称空间和veth

Network namespace是linux内核提供的进行网络隔离的功能,每一个名称空间内有自己独立的网络协议栈,有自己独立的路由表等。Docker容器网络的实现和隔离就是通过网络名称空间实现的。操作网络名称空间# 添加[root@localhost ~]# ip netns add ns1# 查看[root@localhost ~]# ip netns listns1[root@localhost ~]# ip netns showns1# 在名称空间内执行命令[root

2022-03-13 15:05:38 843

原创 fatal error :numa.h:No such file or directory 解决方法

在编译DPDK的时候,出现了如下错误提示,fatal error: numa.h: No such file or directory原因是缺少安装包,执行如下命令即可。Ubuntu:$ apt-get install libnuma-dev

2022-03-06 10:01:48 5687 3

原创 C++ internal compiler error:killed (program cc1plus)

1.问题描述在编译p4c的时候报了一个错c++: internal compiler error: Killed (program cc1plus)Please submit a full bug report主要是在编译过程中,内存不够造成的。2.解决方案使用swap创建临时分区sudo dd if=/dev/zero of=/swapfile bs=64M count=16#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count

2022-03-03 21:30:05 6586 1

原创 ubuntu开启远程ssh连接

1. 更新源列表打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。2. 安装openssh-server在终端中输入: sudo apt-get install openssh-server

2022-03-01 14:22:19 3068

原创 fatal error:Killed signal terminated program cc1plus错误解决方法

在进行make编译的时候,有的时候会出现fatal error:Killed signal terminated program cc1plus的错误提示,这是因为虚拟机的内存分配小了导致的,只需要将虚拟机的内存设置大一些即可

2022-02-27 22:18:07 7935

原创 unable to access https://github.com/....解决方法

git config --global url."https://".insteadOf git://可以把git:// 替换成 https:// 方便使用 https 协议相反的,如果想要将https 替换成 git,比如我们平时下载不到github的东西,提示 unable to access https://github.com/.......的时候就可以用git config --global url."git://".insteadOf https://这个方法来解决..

2022-02-27 15:35:55 24941 2

原创 DPDK执行测试文件报错

最近在安装DPDK的时候,由于没有开启大页导致在执行测试用例的时候报错了,具体:./build/helloworld然后报错make[2]: *** [lib/netdev-dpdk.lo] Error 1make[2]: *** Waiting for unfinished jobs....make[2]: Leaving directory `/home/vagrant/ovs'make[1]: *** [all-recursive] Error 1make[1]: Leavin

2022-02-26 11:04:41 544

转载 DPDK无法分出大页面:EAL: No free hugepages reported in hugepages-2048kB 解决方法

运行vagrant,启动vswitchd时,遇到了DPDK大页面无法分出的问题:EAL: No free hugepages reported in hugepages-2048kB解决方法:$ cd [path-to-dpdk] // 这里是ovs/deps/dpdk$ sudo ./tools/setup.sh[选择Set up hugepages的选项]> 22 // 这里22是 Set up hugepages> 35 // exit...

2022-02-25 21:46:47 2397

原创 vagrant启动报错The following SSH command responded with a non-zero exit status.

启动vagrant报错:vagrant up,报如下错误解决方案:虽然vagrant up启动报错,但是vagrant ssh还是能登陆虚拟机的,进入虚拟机后,执行如下命令sudo rm -f /etc/udev/rules.d/70-persistent-net.rules对, 问题就处在在持久网络设备udev规则(persistent network device udev rules)是被原VM设置好的,再用box生成新VM时,这些rules需要被更新。而这和Vagrantfi.

2022-02-25 21:11:11 1179

转载 VirtualBox不能建立host only network,用ccleaner解决报错E_FAIL (0x80004005)

报错语句Querying NetCfgInstanceId failed (0x00000002).返回 代码: E_FAIL (0x80004005)组件: HostNetworkInterface看网上有很多教程说在设备管理器中添加过时设备,但会超时,找了很久,最终清理注册表解决。首先在控制面版中卸载当前安装的virtualbox,在文件管理器中搜索virtualbox,将.pf和.exe以外的文件都可以删掉。安装ccleaner,安装免费版就可以下载地址然后重新安装v

2022-02-25 20:52:07 2416

转载 wget下载到指定目录并指定文件名

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ./tmp/miniconda3.sh下载到tmp文件夹,并命名为miniconda3.sh如果就是当前目录,可以写成:wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda3.sh...

2022-02-25 20:00:26 6071

转载 vagrant box 各种命令详解

最近用到了vagrant 虚拟机管理工具,学习一下他的命令vagrant box命令用于管理boxes的命令,比如添加、删除等等。此命令的功能主要通过以下子命令完成: add list outdated prune remove repackage update Box Add用法:vargant box add ADDRESS通过地址添加一个vagrant box,地址可是如下几咱: 来自可用Vagrant..

2022-02-25 18:31:02 978

原创 使用 wget 提示 scheme missing

今天在使用wget命令下载东西的时候,出现了scheme missing的错误提示应该是wget位置找不到的原因,可以用whereis wget查看wget安装在了哪然后再按照路径的形式执行wget 来代替原本的wget/usr/bin/wget http://.............

2022-02-25 10:01:59 6122

空空如也

空空如也

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

TA关注的人

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