自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 问答 (1)
  • 收藏
  • 关注

原创 使用docker run --cap-add参数解决权限问题(无法使用gdb调试、无法date -s修改时间)

问题 在docker容器中的centos无法使用gdb调试ptrace: Operation not permitted解决方法 参考:https://stackoverflow.com/questions/42029834/gdb-in-docker-container-returns-ptrace-operation-not-permitted在docker run 命令中...

2018-07-11 12:45:57 26516 3

原创 关于linux system函数调用遇到的坑

关于linux c++守护进程调用调用system函数我们的程序是守护进程,也就是说在最开始会设置一些信号处理,比如说...signal(SIGCHLD, SIG_IGN); //忽略子进程结束的信号...在这样的场景之下,我想实现这样的一个功能:通过调用system函数来执行一些系统命令,并根据系统命令的返回值是不是0来判断命令是否执行成功(正常情况下调用system函数...

2018-07-11 11:39:10 2545

原创 future 与async 的一个实例

#include <iostream>#include <future>#include <thread>#include <chrono>void print(char c) { for (int i = 0;i<10;i++) { std::cout <<c<<std::flush;...

2018-06-01 12:56:47 814

原创 关于linux c++守护进程调用调用system函数

我们的程序是守护进程,也就是说在最开始会设置一些信号处理,比如说...signal(SIGCHLD, SIG_IGN); //忽略子进程结束的信号...在这样的场景之下,我想实现这样的一个功能:通过调用system函数来执行一些系统命令,并根据系统命令的返回值是不是0来判断命令是否执行成功(正常情况下调用system函数,执行成功 return 0; 执行失败 return 正...

2018-05-31 17:16:47 1869

原创 tcpdump 抓包

tcpdump 命令tcpdump 抓包的一般步骤1) 通过-i命令指定一个网卡 如:tcpdump -i ens332) 过滤协议 协议类型如下tcpdump -i ens33 arptcpdump -i ens33 iptcpdump -i ens33 tcptcpdump -i ens33 udptcpdump -i ens33 icmp3) ...

2018-05-30 18:19:35 523

原创 find 常用指令

find 常用指令 find 寻找指定目录下查找子目录与文件过滤条件:文件类型find . -type f # 普通文件find . -type l # 链接文件find . -type d # 文件夹过滤条件:指定深度find . -mindepth 1 # 最小深度find . -maxdepth 3 # 最大深度过滤条件:指定文件大...

2018-05-29 17:51:18 208

原创 cannot find -lstdc++

解决CentOS 中 /usr/bin/ld: cannot find -lstdc++ 错误 使用如下命令安装 yum install glibc-static libstdc++-static

2018-05-10 11:23:20 1857

原创 mysql查询实例(查询玩家充值后第一笔购买的东西)

查询玩家充值后第一笔购买的东西这个查询初看比较棘手,仔细分析之后发现有比较巧妙的方式解决。 * 充值表 rechange uid date_time count 10086 2 2 10086 5 3 10086 7 4* 购买表 mall_flow uid date_time item_id 10086 5 1001 10

2018-04-24 00:35:12 1070

原创 kmp算法(十分钟理解)

本文并不打算细说kmp算法的算法实现,而是通过几张图来描述kmp算法的思想。现在我们将两个字符串左对齐,然后依次对比每位是否相等 当遇到不匹配时需要将P整体往右移动 现在需要移动1位然后依次对比每位是否相等,不相等就又需要整体往右移1位。那可以每次尽可能的向右多移动几位吗? 如果我们提前就可以算出移动几位后才会开始匹配,这样匹配就可以加速了。从上图可以看出移动两位后可以向...

2018-04-22 09:41:02 748

原创 yum安装配置samba服务器

安装yum install samba -y配置[global] workgroup = WORKGROUP server string = server100 netbios name = s100 security = user map to guest = Bad User passdb ba

2018-03-07 21:12:54 2250

原创 关于std::move与右值引用

关于std::move与右值引用 先来看一个例子class A { public: A(){ arr_ = new int[10](); len_ = 10; } A(A && a) { arr_ = a.arr_; a.arr_ = nullptr; len_ = a.len_; }

2017-12-15 21:41:50 595

原创 在centos7上面搭建ftp服务器

在centos7上面搭建ftp服务器要求:1、通过账号密码访问2、只能访问指定目录(不能访问上级目录)3、只能有读权限(当然你自己也可设置可读写)步骤一、环境1、安装yum install vsftpd2、关闭相应防火墙firewall-cmd --add-service=ftp --permanentsystemctl restart firewa

2017-10-09 13:45:28 5643

原创 博客笔记

git log控制输出的宽度 :http://www.cnblogs.com/dabaopku/p/4273166.htmlgit log格式控制:http://www.cnblogs.com/bellkosmos/p/5923439.html

2017-09-21 13:28:51 249

原创 返回值优化

编译器在默认情况下,是开启了返回值优化的struct A{ A(){ cout>>1"<<endl; } A(const A& b){ cout>>2"<<endl; } A(A&&b){ cout>>3"<<endl; } ~A() { cout<<"<<<"<<endl; } int a = 0;};A ret_A(){ A a; return

2017-09-13 23:59:08 905

原创 利用宏定义生成getset私有变量函数

利用宏定义生成getset私有变量。宏的本质就是简单的文本替换,而宏里面的##则是拼接字符串 如name##_ 就表示name_#include using namespace std;//首先定义get、set变量的宏#define GETSETVAR(type, name)\ private: \ type name##_;\ public: \ void

2017-08-26 11:04:46 718

原创 c++类型转换

类型转换一 dynamic_cast在继承体系中安全的向下转型,如何指针类型转型失败返回一个空指针,如果是引用则抛出一个异常#include using namespace std;class A{ virtual void fun() { }};class B:public A{public: void

2017-07-20 13:04:05 235

原创 boost多个关键字索引multi_index_container

根据不同的索引排序结构体。其中tag的意思是这定一个标记,如果不指定的话默认是从0开始,以下例子展示了这两种用法代码:#include #include #include #include #include using namespace boost;using namespace boost::multi_index;using namespace std;struct

2017-07-19 01:04:05 2378

原创 C++11线程池的实现

线程池是指定线程创建的个数,每个线程只是创建销毁一次。比起毫无限制的创建线程销毁线程效率更高。毕竟频繁的创建销毁线程会消耗系统资源,而且系统创建线程也是有上限的。基于上一篇的线程安全队列实现class thread_pool{private: atomic_bool done; //原子操作 vector work_thread;//工作线程 thr

2017-06-05 11:28:46 357

原创 C++11线程安全队列

多线程编程需要实现一个线程安全的队列,上锁,避免多个线程同时读写代码:/** * 线程安全的队列 */#ifndef __THREAD_SAFE_QUEUE__#define __THREAD_SAFE_QUEUE__#include #include #include #include template class thread_safe_queue{pr

2017-05-22 18:37:18 1569

原创 2017codecraft错误总结

错误1错误代码 int graph::get_grade(int grade){ int ki; //找到服务器档位高于need的最小档位 for(ki=server_count-1;ki>=0;ki--) { if(server[ki].out<grade) return ki+1; } }正确代码int graph::get_grade(int gr

2017-05-01 20:03:04 358

原创 C++Primer 笔记

第一章尽量不要使用using namespace std,使用:using std::cin;using std::cout;using std::endl;原因:名称冲突的可能性;本来只需要一棵树,你缺砍了整个森林。  int sum = 0; for (int val; std::cin >> val; sum += val);

2016-12-26 12:37:44 180

原创 第三十二章 字符串匹配

字符串匹配 自限动机 kmp

2016-07-28 22:26:32 315

原创 c++中的图链表数据结构

templatestruct Edge{ int dest;//到下个点的距离 E cost;//到下个点的权重 Edge*link; Edge(){} Edge(int num,E weight):dest(num),cost(weight),link(NULL){};};templatestruct Vertex{ T data; Edge*adj;}templa

2016-07-20 17:40:16 755

原创 tcp/ip 多线程服务器端的实现(参考tcp/ip网络编程)

线程的切换比进程快的多,因为它不需要切换数据区和堆共享数据区和堆可以用来交换信息一、线程的创建pthread_create()函数#includeint prthread_create(pthread * thread,const pthread_attr_t * attr,void *(*start_routine)(void *),void * arg)//成功是返

2016-07-19 19:30:23 1413

原创 三、策略模式

由于手中没有面向对象的项目,于是决定把大话设计模式用c++写一遍加深映像!面向对象的好处:可维护,可扩展,可复用,灵活性好。原则常记心中:职责单一、开放-封闭、依赖倒转、迪米特--->(低耦合)职责单一:多个职责耦合在一起时一个职责变化可能会影响整体,为了维护更加灵活,尽量让功能原子化。对一个类而言,应该仅有一个引起它变化的原因。开放-封闭:类应该可以扩展(开放

2016-07-04 22:04:54 287

原创 二、工厂方法模式

由于手中没有面向对象的项目,于是决定把大话设计模式用c++写一遍加深映像!面向对象的好处:可维护,可扩展,可复用,灵活性好。原则常记心中:职责单一、开放-封闭、依赖倒转、迪米特--->(低耦合)职责单一:多个职责耦合在一起时一个职责变化可能会影响整体,为了维护更加灵活,尽量让功能原子化。对一个类而言,应该仅有一个引起它变化的原因。开放-封闭:类应该可以扩展(开放

2016-07-03 23:38:52 294

原创 一、简单工厂模式

由于手中没有面向对象的项目,于是决定把大话设计模式用c++写一遍加深映像!面向对象的好处:可维护,可扩展,可复用,灵活性好。原则常记心中:职责单一、开放-封闭、依赖倒转、迪米特--->(低耦合)职责单一:多个职责耦合在一起时一个职责变化可能会影响整体,为了维护更加灵活,尽量让功能原子化。对一个类而言,应该仅有一个引起它变化的原因。开放-封闭:类应该可以扩展(开放

2016-07-02 13:03:44 312

原创 使用linux的一些经验

ubuntu安装flashsudo cp ./libflashplayer.so /usr/lib/mozilla/plugins/安装sublimesudo add-apt-repository ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get install sublime-textu

2016-06-22 20:11:09 293

原创 socket

套接字地址结构体struct sockaddr_in{    unsigned short sin_family;    unsigned short sin_port;//端口    struct in_addr sin_addr;//ip    unsigned char  sin_zero[8];};另外一个通用的结构struct sockaddr{

2016-06-21 12:54:37 318

原创 继承,多态

继承父类的构造方法只能调用,不能继承子类拥有父类非private的属性和功能,子类可以有自己的属性 和功能,#include#includeusing namespace std;class Animal{protected: string name=""; int shoutNum=3;public: Animal(string name) { this->n

2016-05-25 14:11:17 272

原创 1087. All Roads Lead to Rome (30)<最短路径,在最短路径上操作>

1087. All Roads Lead to Rome (30)时间限制200 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueIndeed there are many different tou

2016-03-04 08:41:45 420

原创 PAT 1003. Emergency (25)<最短路径,最大搜救人数>

1003. Emergency (25)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams

2016-02-19 16:29:06 419

原创 第十三章 红黑树

红黑树(没有一条路径会比其他路径长2倍)是一种平衡二叉树,它在计算机中被广泛的应用!结点采用的结构:struct red-black{ int key; int color; struct red-black *p,*left,*right;//父,左,右}一、牢记红黑树的五大性质。红黑树的五大性质是学习红黑树最重要最基础的,一定要背下来,方便在插入删

2016-02-02 00:15:09 463

空空如也

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

TA关注的人

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