自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (5)
  • 收藏
  • 关注

原创 mysql增删改查

1、新增数据新增行:insert into 表名 values("李四", 21),(“王二”, 22); insert into 表名 set name="张三",age=20;新增列:alert table 表名 add column 列名 varchar(20) not null;2、删除数据删除整行:delete from 表名 where id=1;删除全部数据:delete from 表名;删除单列:alert table 表名 drop c...

2021-09-16 21:09:13 163

原创 虚函数、虚表、虚指针

虚函数:使用virtual关键字修饰的成员函数,用于实现C++的多态性,可以在派生类中重新定义基类中的虚函数,虚函数是通过虚函数表来实现的。使用基类指针指向派生类的对象时,基类指针调用的虚函数是真正指向的派生类对象中对应的虚函数,而不是基类中定义的虚函数。此外,如果使用基类指针指向派生类的对象,但调用的不是虚函数时,都会调用基类中的那个函数。纯虚函数:在基类中不能对虚函数给出有意义的具体实现,可以将该函数定义为纯虚函数,它的实现由派生类实现。含有纯虚函数的类成为抽象类,抽象类不能实例化对象。虚表(虚

2021-09-16 17:58:26 278

原创 内存溢出、内存泄漏、内存越界

内存溢出:程序在申请内存时,系统没有足够的内存空间供其使用。内存泄露:向系统申请内存使用完后没有归还,导致有效内存被占用。内存泄露最终会导致内存溢出。例如:new一块内存使用,使用完后没有delete。内存越界:向系统申请一块内存后,使用时超出了内存申请范围。例如:通过下标取数组元素时,下标过大导致越界。...

2021-09-16 17:25:01 2132

原创 vector和list的区别

vector底层实现是数组,使用的是连续的存储空间,因此vector的访问速度较快,但从中间删除、插入数据的速度较慢。list底层实现是链表,使用的是非连续的存储空间,因此list的访问速度较慢,但从中间删除和插入数据的速度较快。总结:如果需要高效的随机存取,而不在乎插入和删除的效率,使用vector;如果需要大量的插入和删除操作,而不关心随机存取,则应使用list。...

2021-09-16 17:04:07 209

原创 JSON序列化和反序列化

一、JSON数据的三种形式1、对象var user={ "name": "Tom", "role":"student" };2、数组var userlist=[ {"name": "Tom", "role":"student"}, {"name": "Jhon", "role":"stude...

2019-09-16 19:40:07 434

原创 -webkit-box使用方法和示例

-webkit-box用于移动动设备自适应布局,实现横列的流体布局1、在需要实现流体布局的子元素的直接父元素中添加属性:display:-webkit-box;2、需要对父元素按比例划分成块的,需要在子元素中添加属性:-webkit-box-flex:1; width:0; width:0; =>包含子元素自身的内容块长度来划分父元素,否则会除去子元素内容所占的长度,剩余空...

2019-09-09 20:15:06 8828

原创 归并排序

// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <vector>using namespace std;vector<int> remerge(vector<int> left, vector<int> right) ...

2018-04-25 23:44:42 172

原创 引发了异常: 读取访问权限冲突。 p 是 0xCCCCCCCC。

// test.cpp : 定义控制台应用程序的入口点。//输入一个链表,反转链表后,输出链表的所有元素。#include "stdafx.h"#include <iostream>using namespace std;struct ListNode { int val; struct ListNode* next; ListNode(int n) { val...

2018-04-08 15:10:11 37891 9

原创 快速排序

快速排序:从序列中挑出一个元素,作为"基准"(pivot),我选择第一个元素作为基准把所有小于等于基准值的元素放在基准前面,所有大于基准值的元素放在基准的后面,这个称为分区(partition)操作:具体实现是:base为选择的基准值(第0个元素),left指向第1个元素,right指向最后1个元素。如果vec[left]<=base,则left往后移一个位置,如果vec[right]&gt...

2018-03-09 22:06:11 171

原创 堆排序

堆排序:从小到大(小顶堆:依次pop出最小的元素)方法1:基于堆的插入insert和删除pop两个操作进行的:先将数组中要排序的数值依次插入到小顶堆vec中,全部插入后,再将小顶堆的顶部数值依次pop出来,将剩余的元素形成小顶堆,再pop出第二小的元素。。。以此类推。此时,需要在class中新建两个vector成员变量用于保存插入进来的值和pop出去的最小值#include <iostrea...

2018-03-09 15:04:51 180

原创 冒泡排序、选择排序和插入排序

引用:https://www.cnblogs.com/eniac12/p/5329396.html注意:当直接对main函数中传入的vector操作时,需要传入引用,否则输出的结果不会改变。1、冒泡排序:比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一...

2018-03-09 15:01:47 347

原创 用堆实现最小的K个数的查找:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。

#include <iostream>#include <vector>using namespace std;class Solution {public: vector<int> heap; void insert(int val){ heap.push_back(val); int index=he...

2018-03-07 17:22:32 1460

原创 大顶堆的实现:插入insert和删除pop(C++)

#include <iostream>#include <vector>using namespace std;class bigheap{ //大顶堆public: vector<int> heap; //堆的底层:数组//大顶堆插入一个数:先将要插入的数存放在堆的最后(即容器的末尾,下标为index),// 再与其父节点(下标为(...

2018-03-07 14:08:21 4083

原创 小顶堆的实现:插入insert和删除pop(C++)

#include <iostream>#include <vector>using namespace std;class litterheap{ //小顶堆//private:public: vector<int> heap;//堆的底层:数组//小顶堆插入一个数:先将要插入的数存放在堆的最后(即容器的末尾,下标为index),//...

2018-03-07 13:56:05 1718 1

原创 C++:前序中序后序非递归实现

(1)前序遍历:根左右vector Node(TreeNode* pRoot) { vector vec; stack s; //TreeNode* p; if(pRoot==NULL) return vec; while(!s.empty()||pRoot) {

2018-01-21 15:29:38 347

转载 NS2:编写一个定时器

一个定时器通常有如下的结构:1、声明:在将要使用到定时器的类里面,将定时器声明为friend,同时声明出一个定时器对象。class MAAODV: public Agent {    ……    friend class maAntTimer;    ……    ……    maAntTimer      atimer;

2017-12-14 11:21:43 208

原创 Linux(Ubuntu系统)下安装Aqua-sim

出现问题:1.make: *** [tk3d.o] 错误 1tk8.5.10 make failed! Exiting ...安装libx11-dev可以解决问题:输入:sudo apt-get install libx11-dev2.checking for X... configure: error: Can't find X include

2017-11-15 20:35:04 2445 4

原创 关于gnuplot每次启动都要配置环境变量的问题(Linux系统中)

gnuplot每次启动都要重新配置环境变量:source /etc/profile,原因是gnuplot的环境变量没有加入到用户环境变量中或系统环境变量中。解释一下系统环境变量和用户环境变量:用户环境变量只对某个用户有效,而系统环境变量则对所有用户均有效。用户环境变量所在路径:用户目录下的.profile或.bashrc文件系统环境变量所在路径:/etc下的profile和bashrc

2017-11-15 17:22:57 1532

原创 友元friend和继承(C++)

friend :友元可以访问类的private和protected数据。基类的友元和基类本身可以访问基类的private成员,派生类不能访问基类的private成员。派生类的继承:1、公有继承(public inheritance):基类的public成员在派生类中为public成员,基类的protected成员在派生类中为protected成员。2、受保护继承(prote

2017-11-01 20:51:28 1806

原创 虚函数(C++)

在基类中用virtual声明成员函数为虚函数,定义的虚函数可以在派生类中重新定义,为次函数赋予新的功能。在派生类中重新定义此虚函数时,要求函数名、函数类型、函数形参个数和类型全部与基类中的一致。虚函数体现C++的多态性:1、如果调用非虚函数,则无论实际对象是基类类型还是派生类类型,都执行基类类型所定义的函数。2、如果调用虚函数,则知道运行时才能确定调用的哪个函数,运行的虚函数是引用

2017-11-01 11:27:48 208

原创 inline内联函数

inline内联函数:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置,相当于宏替换。好处:内联函数可以消除函数调用和返回所带来的开销(寄存器存储和恢复),坏处:由于每当代码调用到内联函数,就需要在调用处直接插入一段该函数的代码,所以程序的体积将增大对时间要求比较高,而本身长度又比较短的函数定义成内联函数。内联函数必须在使

2017-11-01 10:50:02 188

转载 NS2整体实现机制(转)

1. NS的整体的实现固定网络的仿真是通过下面三层合作来实现的。 Application这个层是实现数据流的层次。Agent这个层是实现所有各层协议的的层次。Node这个部分由多个分类器(Classifier)实现了所有接收数据包进行判断是否进行转发或接收到Agent的部分。Link实现了队列、时延、Agent、记录Trace等一系列的仿真问题。2.      

2017-10-30 16:44:28 483

原创 this指针(C++)

this指针作为一个隐含参数传递给非静态成员函数,用以指向该成员函数所属类所定义的对象。当不同的对象调用同一个类的成员函数代码时,编译器会依据该成员函数的this指针所指向的不同对象来确定应该引用哪个对象的数据成员。在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。#

2017-10-30 15:24:23 394

原创 tcp与udp协议

(一)TCP协议TCP协议(transmission control protocol 传输控制协议)是一种面向连接、可靠的传输层协议。当应用层向TCP层发送用于网间传输的、8字节的数据流时,tcp会将该数据流分成适当长度的数据段(通常受数据链路层MTU的限制),然后tcp将数据段传递给IP层,由它通过网络传递给接受实体的 tcp 层。tcp 为了保证不发生丢包,给每个包一个序号,

2017-10-11 21:15:12 212

原创 NS2:重新编译(make)出错

在ns-2.30/tools中加入一个新的流量发生器(poisson分布流量发生器)时,修改packet.h以及Makefile文件中的相关信息后,重新编译ns2(make命令),出现如下错误:make: *** No rule to make target ` adc/tbf.cc', needed by ` adc/tbf.o'.  Stop.则:查看Makefile文件中的修

2017-09-25 17:07:50 1051

原创 NS2:添加一个新的流量发生器(poisson分布)

将poisson流量发生器整合到NS2中:1、将poisson.cc文件拷贝至ns-2.30/tools文件夹中。2、修改packet.h(ns-2.30/common/packet.h)文件:(1)在enum packet_t { } 中添加新的数据分组类型: PT_POISSON注意:此数据分组类型要与C++文件中定义的类型一致:(poisson.cc中的init()函数:

2017-09-25 17:06:52 1587 1

转载 NS2:架构(节点、链路、代理、应用层)

推荐:若吞入大量牙膏有什么危险女人面对求婚为何感动公告:请您及时更换请请请您正在使用的模版将于2周后被下线,请您及时更换×分享故事赢音乐剧门票!加载中…新浪首页登录注册飘_摇_旗的博客http://blog.sina.com.cn/piaoyaoqi[订阅][手机订阅]首

2017-09-22 16:54:49 2597

转载 NS2:添加一个新的自写协议的方法

本文介绍如何在最新版的NS-2.30中嵌入一个自己写的简单新协议,读者可先不必较真协议的具体实现代码,先熟悉嵌入流程因为此代码还是有一定bug的,但实现一个协议的总体框架是对的。后续文章将对如何写一个新协议进行解析,如TCL如何传值到C++等。一、编写新协议simple_trans我们在 NS-2.30目录下创建一个文件夹 kgn,目录下有两个文件: simple_trans.h和simp

2017-09-13 17:14:39 2125

转载 NS2:tcl 脚本运行时的流程,调用的类和函数

一般的方法都是在 C++ 中定义的 , OTcl 一般通过 unknown{}, cmd{}, 调用 C++ 的 comand{}, 然后在调用到 C++ 的方法; 而直接在 Otcl 中定义方法的情况比较少见 , 但也不是没有。 tcl 脚本运行时的流程:set val(proc) Propagation/TwoRayGroundset val(netif) Phy/

2017-09-12 10:53:36 1788

原创 继承和虚函数在NS2中的应用(更好地理解累的继承)

虚函数作用:允许用基类的指针来调用子类的这个函数class A { public: virtual void foo() { cout<<"A::foo() is called"<<endl; } }; class B : public A { public: void foo() { cout<<"B::foo() is called"<<endl

2017-09-06 16:50:47 207

原创 NS2:tcl-debug-2.0安装步骤

tcl-debug-2.0安装步骤:1、下载tcl-debug-2.0安装包:http://download.csdn.net/download/yhdyy123/99556302.、将tcl-debug-2.0.tar.gz拷贝至Aqua-Sim-1.0文件夹下(即拷贝至与ns-2.30文件夹所在的同一级文件夹下),并解压,生成一个tcl-debug-2.0目录;3、进入tcl-de

2017-08-29 16:08:18 333

原创 NS2:能量模型以及新版Trace格式仿真结果(.tr文件)中各数据的含义

一、能量模型:$ns_ node-config       -adhocRouting $opt(adhocRouting) \        ......       -energyModel  $opt(energy)\      #EnergyModel       -txPower $opt(txpower)\       -rxPower $opt(rxpower

2017-08-28 17:13:15 3349

原创 NS2:RTS阈值(RTSThreshold)的意义

一个无线帧的大小如果超过设置的RTS阈值,才发送RTS;否则,为保证吞吐量和空口环境的平衡,不发送RTS。voidMac802_11::sendRTS(int dst) //creact a RTS packet and store it in the buffer pktRTS_{ Packet *p = Packet::alloc(); hdr_cmn* ch = HDR_C

2017-08-25 11:17:59 4965

原创 NS2:timeout时间(在check_pktRTS()函数中计算)的含义

int Mac802_11::check_pktRTS() //check_pktRTS():check if we have RTS packet to send{ //if we have,send it then return 0; otherwise return -1 struc

2017-08-22 20:53:00 494

转载 NS2:802.11代码整个流程—packet传输的流程

如何传送一个封包(How to transmit a packet?)首 先,我们要看的第一个function是在mac-802_11.cc内的recv( ),程式会先判断目前呼叫recv( )这个packet的传输方向,若是DOWN,则表示此packet是要送出去的,因此就会再呼叫send(p, h).所以接着,我们跳到send( ),此send( )首先会去检查energy model,若

2017-08-22 20:25:10 737

转载 NS2 定时器:BackoffTimer/ DeferTimer/NavTimer/RxTimer/TxTimer/IFTimer

MacTimer: 是 mac-802.11中所有timer的共同父类一、BackoffTimer:(1)主要目的:用于竞争退避机制:当检测到信道空闲了一个DIFS或EIFS时间后,1.如果此时站点STA(节点)的退避计时器为0(backoff timer==0),那么STA将会产生一个随机回退时间再接入信道发送数据,而不是立即接入信道(目的:为了减少多个等待的STA在DIFS

2017-08-21 20:59:28 1422

原创 PreambleLength以及PLCPHeaderLength

Mac802_11::sendDATA( ) 函数中:ch->txtime() = txtime(ch->size(), dataRate_);      //record the needed time for transmission//txtime=(PreambleLength+PLCPHeaderLength)*8/PLCPDatarate + dataLength*8/da

2017-08-16 21:51:21 2662

转载 NS2:Mac/802.11中的dataRate_和basicRate_ 两种速率分析

Mac/802_11 set basicRate_  1.0e6 ;      // 1MbpsMac/802_11 set dataRate_    2.0e6 ;      // 2Mbps在802.11中,最终在信道上传送的分组是由:PLCP前导 + PLCP头 + PSDU组成PLCP前导和 PLCP头以basicRate_的速率发送,其中PLCP头中的signal 域规定

2017-08-16 21:32:11 1875

转载 C++三大特性:封装、继承、多态

C++封装继承多态总结面向对象的三个基本特征面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!封装

2017-08-14 21:50:09 200

原创 sturct和class的区别

STRUCT中的所有成员都是PUBLIC的,类中可以有PUBLIC,PRIVATE,PROTECTED。 STRUCT中不能包含成员函数但是CLASS中可以包括成员函数. class和struct的最基本的区别就是:在class中,在默认的情况下,它的成员是私有的,而在struct中,默认的情况下,它的成员是公有的!    但是在一般编程的习惯中,在struct中一般只定义数据部分

2017-08-14 19:39:04 431

tcl-debug-2.0

安装步骤见本人博客:tcl-debug-2.0安装步骤

2017-08-29

802.11Mac层流程

NS2中802.11Mac层函数注释以及Mac层各函数运行流程图 http://www.doc88.com/p-285604930007.html

2017-08-15

记录:导入Fedora要重新安装的东西

个人记录:重新导入Fedora系统时要重新安装的东西,来保证NS2仿真能正常进行

2017-07-25

Linux下对NS2项目的仿真分析全过程(从tcl脚本-awk文本处理-gnuplot)

Linux下对NS2项目的仿真分析全过程的代码(从tcl脚本-awk文本处理-gnuplot) 运行过程详见本人CSDN中的描述

2017-07-19

gnuplot/4.6.0.tar.gz

Linux下gnuplot的安装包下载,其安装步骤见我的博客:gnuplot压缩包以及Linux系统中gnuplot安装详解

2017-07-05

空空如也

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

TA关注的人

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