- 博客(76)
- 收藏
- 关注
原创 iperf3 使用
https://baijiahao.baidu.com/s?id=1731514357681464971&wfr=spider&for=pc
2023-09-15 15:27:09
285
原创 ubuntu20.04 直接安装vpp23.06 测试双 VPP Tunnel Ike2
下载选项:focal(ubuntu20.04)选中要下载的包双击进入。
2023-08-25 00:33:57
996
原创 VPP make inatll-deb
dpkg安装sudo apt-get install dpkg # 安装或升级 sudo apt-get remove dpkg。
2023-08-18 02:45:30
187
原创 file io 写入性能对比
#include <stdio.h>#include <stdlib.h>#include <sys/mman.h>#include <sys/types.h>#include <fcntl.h>#include <unistd.h>#include <sys/time.h>#include <time.h>#include <string.h> #d...
2021-12-01 11:09:34
527
原创 测试demo: __attribute__((constructor)):main 函数前执行 + ## 连接符生成函数名
#include<stdio.h>#include <stdarg.h>#define module_init(function, type) \static void __attribute__((constructor)) do_qemu_init_ ## function(void) \{ .
2021-11-19 15:49:57
240
原创 模板函数中使用: 模板类型的函数指针
/* * 下面这个例子是说,func里面要传递不同的参数,但是在执行里面代码之前,要先判断传进来的参数的大小 * 如果把函数模板放入两个函数,然后进行重载,会出现代码的部分冗余,因此这里考虑用模板把公共操作提出来 */#include <iostream>#include <vector>#include <string>using namespace std;// 定义一个函数模板template<typename T>int comp.
2021-09-01 15:48:53
2335
原创 Python中如何获取类属性的列表
前言最近工作中遇到个需求是要得到一个类的静态属性,也就是说有个类 Type ,我要动态获取Type.FTE这个属性的值。最简单的方案有两个: 1 2 getattr(Type, 'FTE') Type.__dict__['FTE'] 那么,如果要获取类属性的列表,该怎么做呢?首先上场的是 dir ,它能返回当前范围的所有属性名称列表: 1 2 3 4 >>> ..
2021-08-25 09:42:24
773
原创 python+ c/c++ 混编
示例:https://www.cnblogs.com/pyse/p/8590829.html修改示例(结构体:包含指针的联合体):test1.py#pycall.pyimport ctypesfrom ctypes import *class private_u(Union): _fields_ = [("string" , c_char_p), ("integer", c_longlong), ("bo...
2021-08-24 17:09:17
170
原创 Makefile
makefile 屏蔽输出 Entering/Leaving directoryhttps://www.swack.cn/wiki/001558681974020669b912b0c994e7090649ac4846e80b2000/0015923635847879673dc174ee44f3db09b44cb6efed77d000建立一个入口Makefile执行指定子目录中的Makefilehttps://blog.youkuaiyun.com/walle_love_eva/article/details
2021-08-19 15:04:48
391
1
原创 多重继承:可将派生类对象转为任意基类对象(单中间不可转为其他类型)
#include <iostream>#include<string>using namespace std;#include <stdio.h> #include <stdarg.h> class IBaseA{public: virtual void fnA() = 0; int m_nTestA;};class IBaseB{public: virtual void fnB() = 0; in.
2021-07-31 19:25:45
201
原创 linux c++ 获取空闲端口
/**g++ -o bind_c bind_c.cc*/#include <stdio.h> #include <unistd.h>#include <stdlib.h>#include <string.h>#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h.
2021-05-31 20:52:28
1643
原创 Ubuntu下编译报错ld: final link failed: nonrepresentable section on output
-fPIC重新编译,这个问题只有在64位系统中编译的时候才会出现。-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。解决方法:如果是cmake ,在CMakeList.txt 前面添加: add_compile_options(-fPIC)参考:http://www.op
2021-05-25 15:18:33
9292
原创 gdb 通过指针查看/修改结构体信息
(gdb) print &gudday$8 = (struct day *) 0x601040 <gudday>(gdb) print gudday$9 = { day1 = { a = 0, b = 0 }, day2 = 2, day3 = 0}(gdb) print *(struct day *) 0x601040$10 = { day1 = { a = 0, b = 0 },.
2021-05-18 09:48:13
3952
原创 TCP 校验和更新+TCP发送机制
1. 校验和更新:https://www.cnblogs.com/sunnypoem/p/12491036.html2.TCP 发送机制:https://blog.youkuaiyun.com/shengzhu1/article/details/72598311(推荐)https://blog.youkuaiyun.com/Cecilia3333/article/details/80358201
2021-05-07 17:12:43
208
原创 C语言使用__FILE__只打印文件名
#include<stdio.h>#include<string.h>#define FILE_NAME(x) (strrchr(x,'/')?strrchr(x,'/')+1:x)void main(void){ printf("filename:%s\n", __FILE__); printf("%s\n",__DATE__); printf("%s\n",__TIME__); printf("filename:%s\n",FILE_...
2021-04-28 15:31:52
2212
1
原创 C++中这种写法:[this](int a, int b)
类成员函数定义:int testClass::test(){auto getNum = [this](int a, int b){return (a-b);};int c = getNum(5, 4);return c;}这是一个lambda表达式,等价于:intanonymous_function(inta,intb){return(a-b);}autogetNum=anonymous_function;并且捕获了this指针,可以...
2021-04-01 14:37:10
834
原创 vector 内存位置
1. vector 在函数中定义(vector<int > arr;), 对象是在栈上(&arr 是栈内存地址), 数据在堆上(& arr[0] 是队内存地址)。2. vector 在函数中new 出(vector<int>* temp = new vector<int>(10,1);), 指针在栈上(&temp), 对象地址在堆上(temp ), 数据在堆上 (数据(*temp ).at(i); or (*temp )[i];取...
2021-03-29 14:43:47
5098
原创 vscode 常用快捷键
1. Alt+shift + 上下箭头 : 拷贝选中(单、多行)到上、下行2. contrl +I :从上到下选中行3. 从投入了+Alt+up/down :上下插入光标 ,列修改文件4. contrl +F2:选择当前字符所有出现5. Home/End : 行首/尾6. contrl +Home/End : 页首/尾...
2021-03-19 10:00:19
146
原创 数据结构与算法9---快速排序
快速排序1. 原理单轴快排改进->双轴快排:Java: arry.sort(int) 经典算法性能:平均 O(nlogn ), 最差 (每次选的边界为最大值,每次只能分出一个值, 可优化:随机取值,判断是不是顺序增长/减小)O(n^2) 最小:(nlogn )1.2 基本实现:#include<iostream>#include<ctime>#include<algorithm>#include<string.h...
2021-03-18 02:31:54
251
原创 数据结构与算法7---归并排序(merge sort)---java和python内部使用
归并排序---python、Java 对对象的排序方式1.简介特点:算法特点: 最优 nlogn 最差nlogn 最好 nlogn 空间复杂度O(n:递归底层不是同时占有会释放因此n) 稳定递归,无限嵌套(方法一直调用)系统一直给方法分配栈帧,把栈空间占完,直到base case。1.1 原理 将数组进行二分,直到最小单元(1个/2个数据),对最小单元排序并合并往上。1. 将2个有序数组排序 a【1,...
2021-03-15 23:44:58
158
1
原创 cout 打印 volatile void* 为1问题
“volatile void*的地址值cout却变成了1”这个问题。这就要涉及到operator<<运算符重载的问题了。operator<<运算符的重载形式中,有对应const void*的,但是没有对应volatile void*的。同时我们知道,在C++的隐式转换中,不会移除const或者volatile限定。我们通过查看文档§27.7.3.6.2 Arithmetic inserters [ostream.inserters.arithmetic]ope...
2021-03-13 16:57:53
290
原创 数据结构与算法7---希尔排序
希尔排序---基于插入排序1.简介特点: 间隔大,移动次数少; 间隔小移动距离短。 (比普通插入排序效率好,但不稳定)1.1基本实现#include<iostream>#include<ctime>#include<algorithm>#include<string.h>#include<vector>using namespace std;class InsertSort{p...
2021-03-13 14:00:36
186
原创 数据结构与算法6---总结简单排序算法(选择、冒泡、插入)
冒泡:慢,数据交换慢 基本不用 选择:不稳定,慢 不用 插入:三种中最快,稳定,样本小,基本有序时效率高 常用
2021-03-13 13:00:37
101
原创 数据结构与算法5---插入排序
插入排序对基本有序的数组最好用稳定与冒泡排序区别: 冒泡为相邻两数据对比,不符合顺序交换;冒泡排序用于对比的最小数据随时可变。选择排序从排序开始第二个位置,按照大小顺序依次往前对比,符合时插入并停止,插入的数据是不变的。1.简介 类似在有序的扑克牌中,插入一张牌进去,使之符合之前的顺序。从边界位置依次往前插。1.1 算法原理 从起始第二位置开始遍历到截止位置 与前数据比较,符合顺序不动,若将不符合 ,交换位置 重复2直到符合顺序...
2021-03-13 00:31:50
93
原创 数据结构与算法---4---冒泡排序
数据结构与算法---1#include<iostream>#include<stdio.h>#include<ctime>#include<cstdlib>#include<string.h>#include<algorithm>using namespace std;class BubbleSort{public:BubbleSort(){};~BubbleSort(){}; int s..
2021-03-12 21:10:09
163
原创 git只提交部分修改的文件(提交指定文件)
在我们的项目中,经常会在本地编译一些代码,还未写完,测试那边来告诉你要改改某个文件的bug,非常着急,此时改完了,提交的时候,自己还在编译的代码并不想提交,此时,你可以利用git这些指令帮助你!1/ git status -s 查看仓库状态2/ git add src/components/文件名 添加需要提交的文件名(加路径--参考git status 打印出来的文件路径)3/ git stash -u -k 忽略其他文件,把现修改的隐藏起来,这样提交的时候就不会提交未被add的文件4/ g...
2021-03-12 16:12:47
3524
原创 C++sort +重载
一.sort函数1.sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考虑!2.sort函数的模板有三个参数:void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);(1)第一个参数first:是要排序的数组的起始地址。(2)第二个参数last:是结束的地址(
2021-03-12 01:58:01
6597
原创 数据结构与算法---3---选择排序
选择排序选择排序----最简单也最没用的排序算法,有优化空间 计算时间、空间复杂度 算法验证----随机数据生成器和对数器 算法程序思路思路:一遍一遍的遍历数组找最小数的位置 和第一位交换 算法程序写法:由简单到复杂: 验证一步步走; 多打印中间结果;先局部后整体 没思路先细分先粗糙后精细变量更名语句合并边界处理C++ 实现:#include<iostream...
2021-03-12 00:34:59
116
原创 数据结构与算法---2--排序算法列表
https://blog.youkuaiyun.com/zhangyikuaile/article/details/114682510常见的排序列表:(记住)常见排序列表 中文名称 英文名称 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 选择排序 Selection 1 不稳...
2021-03-11 23:44:29
89
原创 数据结构与算法---1
一、 Datat Structure --存储数据的不同方式 1. 数组 2.链表 二、算法--解决问题的不同方法----算法往往针对特定的数据结构 三、算法优劣 1. 时间测算 ---》起始终止时间差--Big O 时间太少,加入循环,求平均/总时间计算。不考虑必须要做的操作:循环,赋初值、程序初始化... 不考虑常数 2n------O(n) 不考虑低次项: n^2+n+1-----O(n^2...
2021-03-11 23:14:28
101
原创 typedef/define重复定义的一种解决方法
与#define不同,typedef没有类似#undef的方法取消定义,如果两个库中同时使用typedef定义了某个类型,便会编译失败。 一个解决方法是,在包含第二个库时使用#define将重复定义的类型名改掉。 例如,如果头文件sm_system.h和math.h中均包含"typedef xxxx float_t"语句,那么使用如下的头文件包含方法:#include "sm_system.h"#define float_t ms_float_t#incl...
2021-03-08 20:09:15
3249
原创 c++模板使用
#include<iostream>using namespace std; template<class T>T square(T number){ return number * number;}int main(){int a =10;cout<<"aa= "<<square(a)<<endl;float b =9.9;cout<<"bb= "<<square(b)&...
2021-01-16 16:58:28
148
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人