08 2022 档案
摘要:首先简单介绍下OneNote怎么实现markdown onemark,神器 OneMark 采用 GitHub 偏好的 Markdown 语法,除了基础的标题、列表、引用,还支持任务列表、代码块、LaTeX、toc等高级语法。如果你对 Markdown 还不太了解,可以阅读完整的语法说明。这里我们介
阅读全文
摘要:定风波 苏轼 三月七日,沙湖道中遇雨。雨具先去,同行皆狼狈,余独不觉,已而遂晴,故作此词。 莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。 料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。
阅读全文
摘要:不能发布图片了 可能是有限制 过段时间再试试看
阅读全文
摘要:进程状态 进程创建 父子进程 进程退出 孤儿进程、僵尸进程 wait | waitpid 1. 进程概述 程序和进程 程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程: 二进制格式标识:每个程序文件都包含用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其他信息。(ELF
阅读全文
摘要:标题: linux gcc 静态库 动态库 Makefile GDB 1.1linux开发环境搭建 1 linux系统 虚拟机 云服务器 sudo apt-install openssh-server 2 xshell xftp ifconfig ip地址 端口22 用户名 密码 3 vscode
阅读全文
摘要:作者:拱白菜的阿秀 链接:https://www.nowcoder.com/discuss/809908?type=all&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_all_nctrack 来源:牛客网 一个付费专
阅读全文
摘要:理论结合实际 「进程和线程的区别」 大概只能回答出「进程是资源分配的最小单位,线程是CPU调度的最小单位,balabala...」这样正确却普通的答案。 但是如果你了解 Linux 内核的实现,就可以实际出发,讲讲 Linux 中进程和线程是如何创建的,区别在哪里。 比如在 Linux 中进程和线程
阅读全文
摘要:不应该死记硬背 首先应该了解string内部的实现原理,这样string和char*的转换的很简单了 String-char*-const char*之间的转换 string内部有个const get_c_str()函数,就是为了获取string内部的char成员,然后就可以转为const char
阅读全文
摘要:概述 STL中提供了一个sort()函数,用于排序。它的实现虽然是基于我们熟悉的quick sort, insertion sort, heap sort,但是内部却庞大复杂。sort()函数只能接受RandomAccessIterators,list slist都不能使用。 STL中的sort()
阅读全文
摘要:MPR set所有节点都要维护 存储他选择的mpr节点的集合 mpr select set 应该是只有mpr集合会维护 储存选择将它作为mpr的节点的集合 这网站和之前看的基础论文有冲突啊!!!看了下 应该网站是正确的 还是去看rfc3626官方文档吧!!! https://blog.csdn.ne
阅读全文
摘要:2021年9月15日11:32:41 若有一个节点是桥节点 那就有可能发生dcfm检测出来也没有用的情况 论文阅读后总结: 攻击者必须位于受害者的广播距离内,发布假HELLO消息,声称自己离受害者的所有两跳邻居都很近。 此外,一个虚构的节点被通告,使攻击者在MPR选择中比其他可能的合法候选具有优势。
阅读全文
摘要:https://zhuanlan.zhihu.com/p/374376193 首发于机器学习与强化学习 写文章 强化学习一:基本原理 贺治东 数据挖掘、深度学习、NLP、强化学习 关注 1 人赞同了该文章 谈到强化学习,大家最直观的印象应该就是2016-2017年AlphaGo大胜世界围棋冠军李世
阅读全文
摘要:如何选择深度强化学习算法?MuZero/SAC/PPO/TD3/DDPG/DQN/等(2021-04) https://zhuanlan.zhihu.com/p/342919579 深度强化学习调参技巧:以D3QN、TD3、PPO、SAC算法为例 https://zhuanlan.zhihu.com
阅读全文
摘要:今天突然发现 ns3官方手册讲的太好了 我为什么要买椟还珠 去看些乱七八糟的其他教程??? https://www.nsnam.org/releases/ns-3-35/documentation/ 官方手册版本首先分稳定发布版和开发版 具体内容主要分三种(这里以稳定发布版NS3.25的手册为例)
阅读全文
摘要:简要信息: 网络节点class 这个类结合了以下信息: 一个NetDevice对象的列表,它代表这个节点的网络接口,通过Channel实例连接到其他节点实例。 应用程序对象列表,这些对象表示通过Socket API与节点交互的用户空间流量生成应用程序。 一个节点Id:每个节点唯一的标识符。 一个sy
阅读全文
摘要:《开源网络模拟器》 Node类是ns-3中一个地位极高的 C++类。说其地位高,是因为ns-3里几乎所有的C++类或多或少都和Node类有关。这其 实很好理解,因为从应用层到物理层的所有算法都必须依托于结点才能实现。同样,单纯 一个Node对象是无法处理和传递分组的。它必须在关联各个网络层协议之后才
阅读全文
摘要:以下内容是基于《开源网络模拟器ns-3 架构与实践》的学习笔记 Object类是大部分网络元素类的基类,继承了SimpleRefCoumt类和ObjectBase类,实现了对象聚合功能。 有些Object子类的使用涉及很多其他子类的对象,通过对象聚合技术,统一其他子类对象指针的操作方式。 传输层(P
阅读全文
摘要:在ns2中是非常简单的: iNode1 = (MobileNode*)(Node::get_node_by_address(receiver_iface));//通过ipv4地址获取节点编号 ((MobileNode*)iNode1)->getLoc(&xpos1, &ypos1, &zpos1);
阅读全文
摘要:概念概述 关键抽象 节点 基本的计算设备抽象为节点,class 表示为Node 应用 生成一些要模拟的活动的用户程序的基本抽象 Application 频道 基本的通信子网抽象 Channel 网络设备 网络设备抽象涵盖了软件驱动程序和模拟硬件 NetDevice 一个网络设备被安装在Node中,以
阅读全文
摘要:首先,大体教程是按照b站这个:(已经保存到e盘了) https://www.bilibili.com/video/av671680199 https://www.bilibili.com/read/cv9932411 然后就是想说几个坑 1首先,安装ns3的时候不建议使用root安装, 如果使用了r
阅读全文
摘要:https://www.nsnam.org/docs/release/3.5/manual/manual_2.html#SEC2 1.1 Quick Overview 1.1快速概述 ns-3 random numbers are provided via instances of class Ra
阅读全文
摘要:debug 版本 ./waf clean./waf configure --build-profile=debug --enable-examples --enable-tests ./waf optimized版本 推荐 ./waf clean ./waf configure --build-pr
阅读全文
摘要:到目前为止,我们只关心平面模式,即只关心无线模式的场景。在本节中,我们将介绍处理混合任务的基本概念(有线和无线场景,遵循 NS2 术语)。有线无线脚本需要使用层次寻址,因此您必须阅读第 15 章和第 29 章[2],以获得这种类型的寻址的必要知识。 通过最小的变化,我们可以在有线和无线模拟中使用我们
阅读全文
摘要:tips: 添加新的协议,其实有一个基本的死框架,我们按照框架写完后,再进行自己协议的编写。 死框架: 1、申明一个继承了Agent类的子类,实现其中的recv()方法,其他是自己实现的函数 2、利用TclClass进行C++与OTCL进行绑定 3、申明一个包类型 4、将包类型的C++与OTCL进行
阅读全文
摘要:6.1 数据包类型声明 如果我们还记得,我们必须使用一个常量来表示我们新的数据包类型,PT_PROTONAME。我们将在文件通用/数据包中定义它。让我们找到 packet_t 枚举,其中列出了所有的数据包类型。我们将把 PT_PROTONAME 添加到这个列表中,正如我们在下一段代码(第 6 行)中
阅读全文
摘要:一些路由协议可能有兴趣在无法从层 2 发送数据包时做出反应。我们的路由代理可以很容易地完成,如我们下面解释。 它是如何工作的?数据包的公共报头有一个字段,在其中您可以指定一个函数,如果第二层代理不能发送该数据包,则将调用该函数。让我们调用这个函数 protoname_mac_failed_callb
阅读全文
摘要:protoname/protoname.h 我们定义了一个叫做agent的新类,包含帮助协议完成其工作所需的属性和函数。 为了说明计时器的使用,我们假设质子体是一个主动的路由协议,需要定期发送一些控制数据包。 具体看代码 4.1 TCl 钩子 第 3 节中看到了如何将我们自己的数据包绑定到 Tcl
阅读全文
摘要:protoname/protoname_rtable.h protoname/protoname_rtable.c 我们可以将路由表实现为一个不同的类或任何其他数据结构(例如。散希表) 我们将显示一个封装路由表应该具有的功能的类。 内部信息因协议而异可能有很大不同。 对于路由表中的每个条目,您可能希
阅读全文
摘要:1介绍 2开始 3数据包的类型 4路由代理 5路由表 6需要进行的一些更改(ns2中的文件) 7从第二层协议接收消息 8支持有线和无线
阅读全文
摘要:"物理"结构(文件) protoname.h 这是一个头文件,将在该文件中定义所有必要的计时器(如果有的话)和路由代理 protoname.cc 在这个文件中实际上实现了所有的计时器、路由代理和 Tcl 钩子。 protoname_pkt.h 这里声明所有需要交换的包。 protoname_rtab
阅读全文
摘要:protoname/protoname pkt.h 数据包拥有的三个原始属性 nsadd_t 每次要在 NS2 中声明一个网络地址时,都必须使用此类型。 u_int16_t 16 位无符号整数。 u_int8_t 8 位无符号整数 所有这些类型和更多类型都在头文件配置.h 中定义 同样值得一提的是,
阅读全文
摘要:https://www.bilibili.com/video/BV1ca41187qB?p=3 17分55秒 什么效果比较好 无论是奖励还是步数都是缓缓的上升 如果奖励不是一直向上升,例如是先上升再下降,那拿最高点的模型就好
阅读全文
摘要:首先 我按照遗传算法纯python写好了强化学习算法 只要把这个移植到gym框架就好 主要看了这两个网址 https://blog.csdn.net/weixin_44597347/article/details/124301620 主要是这个!!! https://xueqiu.com/11649
阅读全文
摘要:数据库 什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。 数据库管理系统: DataBaseManagem
阅读全文
摘要:https://www.bilibili.com/video/BV1Vy4y1z7EX?spm_id_from=333.337.search-card.all.click 数据库 什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么? 数据库: 英文单词DataBase,简称DB。
阅读全文
摘要:深入理解前中后序 二叉树遍历框架 void traverse(TreeNode root) { if (root == null) { return; } // 前序位置 traverse(root.left); // 中序位置 traverse(root.right); // 后序位置 } 前中后
阅读全文
摘要://合并2个升序链表 ListNode mergeTwoLists(ListNode l1, ListNode l2) { //虚拟头节点 dummy是用来定位合并后的到的链表 怕丢失 ListNode dummy = new ListNode(-1), p = dummy; ListNode p1
阅读全文
摘要:https://lyl0724.github.io/2020/01/25/1/ 因此,也就有了我们解递归题的三部曲: 找整个递归的终止条件:递归应该在什么时候结束? 找返回值:应该给上一级返回什么信息? 本级递归应该做什么:在这一级递归中,应该完成什么任务? 递归解题三部曲 何为递归?程序反复调用自
阅读全文
摘要:从整体到细节,自顶向下,从抽象到具体的框架思维是通用的,不只是学习数据结构和算法,学习其他任何知识都是高效的。 一、数据结构的存储方式 数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)。 二者的优缺点如下: 数组由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存
阅读全文
摘要:算法的本质 如果要让我一句话总结,我想说算法的本质就是「穷举」 但是,你千万不要觉得穷举这个事儿很简单,穷举有两个关键难点:无遗漏、无冗余。 所以,当你看到一道算法题,可以从这两个维度去思考: 1、如何穷举?即无遗漏地穷举所有可能解。 一般是递归类问题,最典型的就是动态规划系列问题。 2、如何聪明地
阅读全文
摘要:一.构造函数初始化列表的基本形式 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表, 每个数据成员后面跟一个放在括号中的初始化式。 第一种: student(int m,int n):shengao(m),tizhong(n) { cout<<"初始化"<<endl; } 第二种:
阅读全文
摘要:作者:还有offer嘛 链接:https://www.nowcoder.com/discuss/962212?page=3 来源:牛客网 • 指针、引用、数组、内存 • 右值引用与完美转发 • 引用与指针区别 • C 和 C++ 的一些区别,比如 new、delete 和 malloc、free 的
阅读全文
摘要:https://www.zhihu.com/people/xu-wei-duan-ke/posts <<侯捷C++ 内存管理第二讲笔记(二) - 知乎.pdf>> <<侯捷C++ 内存管理 第一讲 笔记 - 知乎.pdf>> <<侯捷C++ 内存管理第二讲笔记(一) - 知乎.pdf>> <<内存管
阅读全文
摘要:https://www.runoob.com/git/git-tutorial.html Git 创建仓库 本章节我们将为大家介绍如何创建一个 Git 仓库。 你可以使用一个已经存在的目录作为 Git 仓库。 git init Git 使用 git init 命令来初始化一个 Git 仓库,Git
阅读全文
摘要:https://www.nowcoder.com/study/live/690/5/9 面试官的问题: ①智能指针用来干什么的,有哪几种 ②怎么实现的 有四种智能指针(第一种抛弃了) 如果我在delete前有异常检测,并且发生了异常,那么就会跑出异常,并且没有进行delete,造成内存泄漏 使用智能
阅读全文
摘要:#include<iostream> 写文件 ofstream 追加模式 写文件 ifstream #include <fstream> fstream output; output.open("file.txt", ios::app); output << state_.mprset_.size(
阅读全文
摘要:https://yngzmiao.blog.csdn.net/article/details/105247065
阅读全文
摘要:va_list介绍 https://blog.csdn.net/weixin_40332490/article/details/105306188 无名无奈 于 2020-04-04 09:59:23 发布 va_list是在C语言中解决变参问题的一组宏,变参问题是指参数的个数不定,可以是传入一个参
阅读全文
摘要:https://blog.csdn.net/l2563898960/article/details/97769569
阅读全文
摘要:static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类: 1.如果这个静态函数出现在类里,那么它是一个静态成员函数; 静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非static)数据成员。 其实很好理解,类的静态成员(变量和方法)属于类本身,在类加载的时候就会分
阅读全文
摘要:https://blog.csdn.net/qq_40132943/article/details/122790084
阅读全文
摘要:含义 move和forward都是C++11中引入的,它们是移动语义和完美转发实现的基石。 move:不能移动任何东西,它唯一的功能是将一个左值强制转化为右值引用,继而可以通过右值引用使用该值,以用于移动语义 从实现上讲,std::move基本等同于一个类型转换:static_cast<T&&>(l
阅读全文
摘要:侯捷老师总结的一张非常好的表格:注意画叉×的地方 另外要注意的是: 一:这个才是const函数!!! int linktime() const { return linktime_; } 这个只是返回值是const int的函数: const int linktime() { return link
阅读全文
摘要:自定义排序方法有 1. 重载<操作符 2. 定义cmp比较函数,重载()操作符 但是如果是存的指针元素,然后还要有序的话,只能使用第二种排序方法。 https://blog.csdn.net/weixin_44307065/article/details/109263697
阅读全文
摘要:既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的 和队列基本操作相同: top 访问队头元
阅读全文
摘要:可以对比优先队列学习 排序 set 支持自动排序,默认是由小到大排,和很多其他排序数据结构一样,也可以手写排序,就是重载小于号; 如果是单纯的要由大到小排也可以:set< int,greater<int> >se;//由大到小排序 如果有多个关键字,那么可以手写结构体,重载小于号; //x为第一关键
阅读全文
摘要:2022年8月12日22:11:54 注意实现仿函数的时候最后面要加const 仿函数概念 1. 尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。 2. functor,翻译成函数对象,伪函数,它是是重载了"()"操作符的普通类对象。从语法上讲,它与
阅读全文
摘要:一、头文件 #include<algorithm> using namespace std; 二、使用sort() 1.函数原型 sort(begin, end); sort(begin, end, pred); 作用:可以用来排序数组,容器等。 参数: begin:排序区间的起始位置 end:排序
阅读全文
摘要:reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,必须要用push_back()/insert()函数。 resize是改变容器的大小,并且创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operat
阅读全文
摘要:序列式容器vector,deque 使用erase删除迭代器后,后面的元素的迭代器会失效。但是erase会返回下一个有效的迭代器。 int main() { vector<int> v{ 1,2,3,4 }; vector<int>::iterator it = find(v.begin(), v.
阅读全文
摘要:需要包含头文件 #include <ctype.h> isdigit( ) 函数可以用来判断字符是否为数字 功能:当判断的字符是数字时,函数返回1~9的非零值,当判断的字符不是数字时,函数返回 0 isalpha() 函数用于判断一个字符是否为字母,位于头文件 cctype 中。 https://b
阅读全文
摘要:stoi() 和atoi() 函数将字符串转化为int型 区别是stoi的形参是const string*,而atoi的形参是const char*。c_str()的作用是将const string*转化为const char* 来自 <https://blog.csdn.net/Sarah_212
阅读全文
摘要:最新知识:三种string实现方式: 是直接拷贝(eager copy) 类似vector 内嵌char*指针 现在基本不用 是copy on write 对多线程性能不好 g++采用这个方式 则是短字符串优化SSO string对象本身空间存储字符串 现在用的多 陈硕的《Linux多线程服务端编程
阅读全文
摘要:来自 https://blog.csdn.net/qq_33210042/article/details/119390196 C++ string字符串的比较是否相等 可以使用compare 也可以使用"==" 1 使用比较运算符 == > #include <iostream> #include
阅读全文
摘要:c++中string的用法 具体见:string 截取、替换、查找字符串 简介 或者: <https://blog.csdn.net/qq_30534935/article/details/82227364> https://blog.csdn.net/weixin_44503157/article
阅读全文
摘要:大致有一下几种方法实现用于把一个vector赋值给另一个vector: 2022年5月18日09:48:50 set map也是可以使用下面方法的 方法1: vector<int > v1(v2); //声明,只有在声明、初始化的时候能用 方法2:使用swap进行赋值:注意会进行交换,原容器数据丢失
阅读全文
摘要:对象类型名 + () 没有变量名 就是临时对象,是典型的右值 右值的生命周期是短暂的,右值具有两个特点: 所引用的对象即将被销毁; 该对象没有其他用户。 这两个特点决定了,可以窃取右值对象的资源,这也为后面的移动构造函数和移动赋值操作符的实现奠定了数据基础。 一般写法,定义一个vector vect
阅读全文
摘要:各段的介绍 一般情况下,一个可执行C程序在内存中主要包含5个区域,分别是代码段(text),数据段(data),BSS段,堆段(heap)和栈段(stack)。其中前三个段(text,data,bss)是程序编译完成就存在的,此时程序并未载入内存进行执行。后两个段(heap,stack)是程序被加载
阅读全文
摘要:vector: empty() 如果队列空则返回true pop_back() 删除数组尾端元素 push_back() 在数组尾插入一个元素 size() 返回队列中元素个数 front() 返回队列中的第一个元素 back() 返回队列中最后一个元素 v.insert() 插入元素 emplac
阅读全文
摘要:自由存储区和堆的区别是一个老生常谈的问题了,就像面试题new和malloc的区别一样。事实上,网上多说人认为,自由存储区与堆的划分标准是申请和释放内存是使用的new/delete还是malloc/free。C++标准并没有给出new/delete应该如何实现,但很多编译器的new/delete都是以
阅读全文
摘要:常见的不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。 1.为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。 2.为什么C++不支持构造
阅读全文
摘要:https://blog.csdn.net/hazir/article/details/21413833 weixin_431086412021.02.20 1补充一下,64位机器的话,现在是多分配8个字节而不是4个字节了。另外,new和delete是可以重载的 m0_53903451回复weixi
阅读全文
摘要:2022年6月21日09:42:49 不应该死记硬背 首先应该了解string内部的实现原理,这样string和char*的转换的很简单了 有关string和char的转换 string内部有个const get_c_str()函数,就是为了获取string内部的char成员,然后就可以转为cons
阅读全文
摘要:来自 <https://blog.csdn.net/zhejfl/article/details/90199200> 重载(overload):是(同一个类中)函数名相同,参数列表不同。 重写(override):也叫覆盖。子类重新定义父类中有相同名称和参数的虚函数(virtual)。在继承关系之间
阅读全文
摘要:一、new了一个对象,计数;delect一个,减数;最后要为零 二、智能指针 三、(会被继承的)基类的析构函数一定得是虚函数 四、new [] 数组对象,且这个对象的析构函数是有意义的,那么delect的时候也要加上[],不然就不会全部删除,会内存泄漏。 2022年6月23日14:38:02 发生内
阅读全文
摘要:父类指针指向子类对象,子类指针不能指向父类对象 总结: <1>.当基类指针指向派生类的时候,只能操作派生类从基类中继承过来的数据.(重写虚函数得到的函数也算继承过来的数据) <2>.当派生类指向基类的指针,因为内存空间比基类长,访问的话会导致内存溢出,所以不允许派生类的指针指向基类。 加深理解: <
阅读全文
摘要:字符串输入遇到空格问题 cin遇到空格会停止 输入一句英文,存入一个字符串 使用:getline(cin, s) 例如: i am a boy getline是碰到终止符才停止 如果你要把一个个单词存成一个string 使用:while(cin >> s){} 去除某个字符可以用fstream 或者
阅读全文
摘要:虚函数详解: https://blog.csdn.net/lyztyycode/article/details/81326699 虚函数作用主要是实现了多态机制。多态就是用父类类别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可与让父类的指针有"多种形态"。(这是一种泛型
阅读全文