自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (2)
  • 收藏
  • 关注

原创 iptables 指令语法

iptables 指令语法iptables [-t table] command [match] [-j target/jump][-t table] 指定规则表-t 参数用来,内建的规则表有三个,分别是:nat、mangle 和 filter,当未指定规则表时,则一律视为是 filter。个规则表的功能如下:nat:此规则表拥有 PREROUTING 和 POSTROUTING 两个规则...

2019-09-27 09:06:13 295

转载 Linux中使用rpm命令安装rpm包

安装软件包命令,参数指明了( v 展示正在安装的文件信息1 #rpm -i example.rpm 安装 example.rpm 包;2 #rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;3 #rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度rpm -...

2019-09-18 16:55:01 63556

转载 shell脚本[] [[]] -n -z 的含义解析

在写脚本的时候,总是搞不懂[] [[]]的区别,这次写一个总结,把它掌握牢固应用场景分析:1、在中括号中,判断变量的值, 加不加双引号的问题?-z 判断 变量的值,是否为空; zero = 0- 变量的值,为空,返回0,为true- 变量的值,非空,返回1,为false-n 判断变量的值,是否为空 name = 名字- 变量的值,为空,返回1,为false- 变量的值,非...

2019-09-11 17:26:44 2057

转载 Linux网络流量控制工具—Netem

Linux网络流量控制工具—Netem第一篇:概念篇Netem是Linux 2.6及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用Linux 2.6(或以上)版本内核的很多发行版Linux都开启了该内核功能,比如Fedora、Ubuntu、Redhat、O...

2019-04-09 14:33:07 852

转载 抽象和接口的区别

1、抽象类和接口都不能直接实例化。如果要实例化,涉及到多态。抽象类要实例化,抽象类定义的变量必须指向一个子类变量,这个子类继承并实现了抽象类所有的抽象方法。接口要实例化,接口定义的变量必须指向一个子类变量,这个子类继承并实现了接口所有的方法。2、抽象要被子类继承,接口要被子类实现。3、接口里只能对方法进行声明,抽象类里既可以对方法进行声明,又可以实现。4、抽象类里面的抽象方法必须被子类...

2018-08-24 10:47:23 205

转载 重新启动服务器系统:shutdown -r now 与 reboot 命令区别

在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。1、shutdown 命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。  精确时间的格式是hh:mm,表示小时和分钟,...

2018-08-22 10:25:00 25002

原创 如何判断map容器的key是否存在

首先,不推荐使用[]来判断key是否存在,因为使用操作符[]会向map容器里插入一个元素。     map的operator[]重载大致是这样一个内容:         data_type&   operator[](   const   key_type&   k   )         {         value_type   v(k,   data_type()...

2018-08-22 10:13:44 3071

转载 c++ map基本操作

Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数;   map<string , int >mapstring;         map<int ,string >mapint;   map<sring, char>mapstring;...

2018-08-22 10:11:49 1019

原创 c++ map查找key

C++ map注意事项1、在map中,由key查找value时,首先要判断map中是否包含key。2、如果不检查,直接返回map[key],可能会出现意想不到的行为。如果map包含key,没有问题,如果map不包含key,使用下标有一个危险的副作用,会在map中插入一个key的元素,value取默认值,返回value。也就是说,map[key]不可能返回null。3、map提供了两种方...

2018-08-22 10:10:20 79812 4

原创 c++ pod

在imperfect c++里, 书里是这样解释POD的: 1、   所有标量类型(基本类型和指针类型)、POD结构类型、POD联合类型、以及这几种类型的数组、const/volatile修饰的版本都是POD类型。 2、  POD结构/联合类型:一个聚合体(包括class),它的非static成员都不是pointer to class member、        ...

2018-08-22 09:42:17 258

转载 Source Insight

Source Insight 4.0 文件类型、编码格式、tab转空格、tab键自动补全设置。。。http://www.cnblogs.com/bluestorm/p/6864540.html  1.括号配对高亮:“在前括号左侧,后括号左侧” 双击鼠标左键,可以选定匹配括号和其中内容(<>,(),L{R},[]之间) 2.让{ 和 } 不缩进:Options -> Documen...

2018-07-06 11:52:45 282

转载 memmove 和 memcpy的区别以及处理内存重叠问题

区别:memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count);他们的作用是一样的,唯一的区别是,当内存发...

2018-07-02 14:17:52 306

转载 segment fault

一 造成segment fault,产生core dump的可能原因1.内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符 c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp等字符串操作函数,将目标字符串读/写爆。应该使用strncpy, strlcpy, ...

2018-07-02 08:59:32 3229

转载 每天一个linux命令(03):netstat命令

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数...

2018-06-19 16:51:57 188

转载 每天一个linux命令(02):telnet命令

telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的 能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台...

2018-06-19 16:48:17 260

转载 每天一个linux命令(01):wc命令

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。1.命令格式:wc [选项]文件...2.命令功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。3.命令参数:-c 统计字节数。-l 统计行数。-m 统计...

2018-06-19 16:47:06 322

转载 C++单元测试!写的很好!!转

C++单元测试的一点感悟置顶 2015年01月22日 15:37:52阅读数:2872      之前一直在寻找一种合适的方法来做C++单元测试,也尝试了不少的方法。写一点体会提供大家参考(不一定是最好的,但是我想还是能给大家一些启发吧)。JAVA和C#都有强大的IDE支持,而且JAVA和C#的反射机制能够使得Mock更加容易一些。但是由于C/C++语言的独特性,单元测试的过程变得不那么的顺手,特...

2018-06-19 16:11:18 29255 5

转载 gtest Test_F 和Test 区别

一般来说简单的测试用TEST简单测试TESTCpp代码#include <gtest/gtest.h>  int Factorial( int n )  {    if(n==2) return 100; //故意出个错,嘻嘻    return n<=0? 1 : n*Factorial(n - 1);  }  //用TEST做简单测试  TEST(TestFactorial,...

2018-06-04 15:25:29 9650 1

转载 cmake

cmake 简介    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake 使用方法    CMake的所有的语句都写在一个叫:CMakeLists.txt的文件中。当CMakeLists.txt文件确定后,可以用ccma...

2018-06-04 15:01:41 1778

转载 CMake使用总结

前言做第一个linux项目时,Makefile是一行行敲入的,第二个项目后,开始使用cmake。至于为何选择cmake,倒不是觉得它有什么好,仅仅是因为当时项目组中的一个linux前辈向我们推荐了这个。经过一番研究之后,并在项目中使用,现将使用经验总结一下,供大家参考。入门篇学习一项新知识的时候,最好是从sample开始。cmake官方网站就给出了一个简单的例子。在开始之前,还是先安装cmake程...

2018-06-04 14:27:10 608

转载 gcc、make、makefile、cmake、cmakelists区别

1.gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。2.当你的程序只有一个源文件时,直接就可以用gcc命令编译它。3.但是当你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大4.所以出现了make工具 make工具可以...

2018-06-04 14:12:30 406

转载 cmake使用示例与整理总结

cmake中一些预定义变量PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildCMAKE_INCLUDE_PATH 环境变量,非cmake变量CMAKE_LIBRARY_PATH 环境变量CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所...

2018-06-04 09:25:22 343

转载 google mock C++单元测试框架

Google Mock 入门概述什么是Mock?Mock,更确切地说应该是Mock Object。它究竟是什么?它有什么作用?在这里,我也只能先说说我的理解。 比如当我们在单元测试、模块的接口测试时,当这个模块需要依赖另外一个/几个类,而这时这些个类还没有开发好(那名开发同学比较懒,呵呵),这时我们就可以定义了Mock对象来模拟那些类的行为。说得更直白一些,就是自己实现一个假的依赖类,对这个类的方...

2018-05-31 15:29:37 8714 1

转载 gtest学习

一.用 TEST() 宏声明测试函数 TEST(name1, name2){EXPECT_EQ(value1, value2);}name1:测试用例名称  类名  文件名name2:测试名称   方法名   函数名二.初始化 googletest 并运行所有测试int main(intargc,char** argv){::testing::InitGoogleTest(&argc, a...

2018-05-30 14:41:41 452

转载 Linux C++中的时间函数(转)

http://net.pku.edu.cn/~yhf/linux_c/function/03.html asctime(将时间和日期以字符串格式表示)相关函数time,ctime,gmtime,localtime表头文件#include<time.h>定义函数char * asctime(const struct tm * timeptr);函数说明asctime()将参数timept...

2018-05-23 13:20:50 367

转载 C++11学习之share_ptr和weak_ptr

一、shared_ptr学习1.shared_ptr和weak_ptr 基础概念shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用于动态资源管理shared_ptr基于“引用计数”模型实现,多个shared_ptr可指向同一个动态对象,并维护了一个共享的引用计数器,记录了引用同一对象的shared_ptr实例的数量。当最后一个指向动态对象的shared_ptr销毁时...

2018-05-15 21:04:10 3721

转载 Share_ptr 智能指针

Share_ptr也是一种智能指针。类比于auto_ptr学习。所以推荐先学习auto_ptr,再来学习shared_ptr。本博客的前两个就是auto_ptr的总结。希望感兴趣的朋友可以看看。 Shared_ptr和auto_ptr最大的区别就是,shared_ptr解决了指针间共享对象所有权的问题,也就是auto_ptr中的赋值的奇怪问题。所以满足了容器的要求,可以用于容器中。而auto_pt...

2018-05-15 21:03:19 1212

转载 C++中的auto_ptr智能指针

C++中的auto_ptr(俗称智能指针)所做的事情,使用起来就像普通指针,但当其动态分配内存时,不再需要考虑清理问题。当它的生存期结束时,系统会自动清理它指向的内存。 其实auto_ptr是一个模版类(注意实质上还是一个类)。主要解决内存泄漏问题。 原理:其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针(!!!其实实质上还是一个类)。...

2018-05-15 21:02:36 166

转载 C++ 模板详解(一)

转载地址:http://www.cnblogs.com/gw811/archive/2012/10/25/2738929.htmlC++模板  模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。  模板是一种对类型进行参数化的工具;  通常有两种形式:函数模板和类模板;  函数模板针对仅参数类型不同的函数...

2018-05-15 21:01:10 117

转载 epoll详解(转载)

什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epoll的相关系统调用epol...

2018-05-15 18:30:01 212

转载 sizeof--转载

首先要明确sizeof 不是函数,也不是一元运算符,他是个类似宏定义的特殊关键字,sizeof();括号内在编译过程中是不被编译的,而是被替代类型,如 int a=8;sizeof(a);在编译过程中,它不管a的值是什么,只是被替换成类型 sizeof(int); 结果为4.如果sizeof(a=6);呢,也是一样的转换成a的类型,但是要注意 因为a=6是不被编译的,所以执行完sizeof(a=6...

2018-05-15 18:22:17 126

转载 cmake指令详解

所需文件名:CmakeLists.txt,在需要操作的每个目录下都需要PROJECT(工程名字)    这条指令会自动创建两个变量:<projectname>_BINARY_DIR(二进制文件保存路径)    <projectname>_SOURCE_DIR(源代码路径)cmake系统也帮助我们预定义了PROJECT_BINARY_DIR和PROJECT_SOURCE_DI...

2018-05-14 18:30:59 1611

转载 CentOS7 常用命令集合(转)

CentOS7 常用命令集合常用命令文件与目录操作命令解析cd /home进入 ‘/home’ 目录cd ..返回上一级目录cd ../..返回上两级目录cd -返回上次所在目录cp file1 file2将file1复制为file2cp -a dir1 dir2复制一个目录cp -a /tmp/dir1 .复制一个目录到当前工作目录(.代表当前目录)ls查看目录中的文件ls -a显示隐藏文件ls...

2018-05-10 16:31:21 177

转载 CentOS最常用命令及快捷键整理(转载)

常用命令:文件和目录:# cd /home                        进入 '/home' 目录# cd ..                                返回上一级目录# cd ../..                             返回上两级目录 # cd -                                 返回上次所在目录# ...

2018-05-10 16:14:51 277

转载 命名空间namespace(转)

一、为什么使用命名空间  一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头文件中用了相同的名字来命名所定义的类或函数,这样在程序中就会出现名字冲突。不仅如此,有可能我们自己定义的名字会与C++库中的名字发生冲突。    名字冲突就是在同一个作用域中有两个或多个同名的实体,为了解决命名冲突 ,C++中...

2018-05-10 14:57:52 222

转载 Dijkstra算法 (转)写的特别好~

========================================================================       这主要是用来找起点与终点最短路径的方法,搜索是以目标节点全遍历的方式进行搜索,一步步确定每个节点的最短路径才终止.       操作过程中分两集合:  确定最短路径顶点集合U 与 未确定最短路径顶点集合V.  利用U里面的有向

2017-11-12 21:26:16 459

转载 TCP的三次握手和四次挥手

建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端接收方发送的确认信息中包含了自己剩余的缓冲区尺寸剩余缓冲区空间的数量叫做窗口2. TCP的流控过程(滑动窗口)TCP(Transmission Control

2017-09-06 20:57:06 685

转载 计算机网络7层结构归纳总结

TCP/IP协议簇可以分为7层结构,从低到高可以分为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层.也可以分为应用层.网际层.传输层.网络接口层。  其中物理层主要包含一些物理设备,主要包含,中继器,集线器,双绞线,等。  数据链路层负责在相邻两个节点之间的线路上无差错的传送以帧为单位的数据,并进行流量控制。主要设备有交换机和网桥。  网络层为传送实体提供端到

2017-09-02 11:19:40 1763

原创 [STL] vector基本用法

vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,我们再也不必因为害怕空间不足而一开始要求一个大块的array。vector动态增加大小,并不是在原空间

2017-08-08 16:13:17 270

转载 C/C++笔试题

1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的

2017-07-31 21:45:47 989

ROS机器人程序设计-中文版

ROS机器人程序设计-中文版

2017-04-07

空空如也

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

TA关注的人

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