自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

忽如一夜春风来

莫愁前路无知己

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 线程池实现

#include <iostream>#include <windows.h>#include <vector>using namespace std;class ThreadPool{public: virtual bool StartThread(int threadCount) { bool ret = true; for (int i = 0; i < threadCount; ++i) { m_threadRun =.

2020-12-08 09:13:18 117

原创 4.列表

""" 列表常用方法"""#添加元素ar = [1,2,3,4]ar += [5]# ar: [1,2,3,4,5]ar.append(6)#ar: [1,2,3,4,5,6]ar.insert(7,7)#ar: [1,2,3,4,5,6,7]ar.extend([8,9])#ar: [1,2,3,4,5,6,7,8,9]ar[1]# 2#删除元素ar....

2019-09-29 11:04:48 131

原创 3. Python3 练习问题

如何四舍五入# 平常使用int()时向下截断,现要求四舍五入# 一位小数的时候temp = 5.3if int(temp + 0.5) == 6 print("值为6")elif int(temp + 0.5) == 5 print("值为5")''' 5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5 5.6 “四舍五入”结果为:6,int(5.6+0.5...

2019-09-29 10:59:31 180

原创 2. python 基础语法分支和循环语句

循环语句以及IF和注释while True: print("This is True") if True: print("This is IF True")elif False: print("This is ElIf False")else: print("this is no") # 这里是单行注释''' 这里是多行注释'''...

2019-09-29 10:58:53 182

原创 1.环境配置

linux乌班图18.04, 改变默认python指向为python3​查看替换版本python信息输入update-alternatives --list python如果报错就先输入sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alterna...

2019-09-29 10:58:20 165

原创 模板的特化和偏特化

模板特化函数模板特化解决开发过程中由于要对特殊类型做特殊的处理, 不能直接使用函数模板,例如,当我们判断两个值是否相等的时候, 普通的变量和字符串或者类的比较就需要单独特化,来做相应的处理.template <typename T>bool isEqual(T va1,T va2){ return va1 == va2 ? true : flase;}//特...

2019-09-02 20:25:38 385

原创 实验楼之linux学习

设置用户不需要密码登陆 cd /etc/passwd 第二个分号后即是是否需要密码登录, 去掉即可不需要密码登录若某一用户权限不够创建文件夹或者需要执行sudo命令提示is not in the sudoers file. This incident will be reported. 两种解决方法 1. 实验楼上的解决方案我试过没有成功, 在此列出来. 如果哪位大神看...

2019-07-17 13:21:27 160

原创 记前端的第一次项目

树结构菜单需求1在页面的左侧建立一个树形的菜单, 这个菜单要求含有点击即展开下级功能. 菜单的结构是动态变化的, 每次获取需要调用后台接口, 通过WebSocket获取分解需求即可认为是以下两点1. 前端如何建立WebSocket通信2. 如何生成树形菜单在这里插入代码片1. 建立WebSocket通信为什么不采用Http来获取?因为项目需要用到长连接来获取例如文件, 点...

2019-07-16 09:36:20 249

原创 多线程理解<1>-并发以及基本概念

并发的概念系统同时执行多个任务, 以往计算机都是单核的CPU在某一时刻只能处理一个任务, 不是正真的并发, 每秒钟多次切换任务,假象上的并发,这种上下文的切换是存在时间开销的(需要保存切换的时候中间状态,进度等信息,当切换回来的时候复原这些信息)随着硬件的发展, 出现了多处理器计算机, 用于服务器和高性能计算领域, 在一个芯片上有多个CPU, 这个时候就能实现真正的并行多个任务使用并发...

2019-02-19 21:46:35 238

原创 计算机网络常见模型分析

常见网络模型OIS模型: 开放通信系统互联参考模型(Open System Interconnection), 是国际标准提出一个试图解决全世界计算机互联的标准框架OSI模型按照不同的功能可以划分为七层应用层处理网络应用第七层表示层数据表示第六层会话层主机间通信第五层传输层端到端的连接第四层网络层寻址和最短路径第三层数据链路层介...

2019-02-19 21:44:54 2507

原创 顺序容器操作

从标准输入读取string序列, 存入deque, 编写一个循环, 打印deque 的元素#include &lt;string&gt;#include &lt;deque&gt;#include &lt;iostream&gt;int main(){ std::deque&lt;std::string&gt; dq_str; std::string temp; ...

2019-01-29 16:46:44 121

原创 类和对象的理解

类和对象结构化程序设计程序 = 算法 + 数据结构算法第一, 数据结构第二面向对象程序设计程序 = 对象 + 对象…每个对象负责一组相关任务面向对象编程开发范式特性程序之间彼此发送消息万物皆对象每个对象都有自己的内存空间每个对象都有自己的类型概念类类是创建对象的模板和蓝图类是一组类似对象的共同抽象定义对象对象是类的实例化结果对象...

2019-01-29 16:44:07 323

原创 贪心算法

贪心算法之prim在某地分布着N个村庄,现在需要在N个村庄之间修路,每个村庄之前的距离不同,问怎么修最短的路,将各个村庄连接起来解决上述问题称为prim算法, 他是一种产生最小生成树的算法, prim在定点选择利用了贪婪算法//如图解决上述问题, 要求最短#include &lt;iostream&gt;#include &lt;vector&gt;//不可达距离const int...

2019-01-29 16:40:03 183

原创 windows多线程之句柄的理解

从广义上,能够从一个数值拎起一大堆数据的东西都可以叫做句柄。句柄的英文是"Handle",本义就是"柄",只是在计算机科学中,被特别地翻译成"句柄",其实还是个"柄"。从一个小东西拎起一大堆东西,这难道不像是个"柄"吗?然后,指针其实也是一种"句柄",只是由于指针同时拥有更特殊的含义——实实在在地对应内存里地一个地址——所以,通常不把指针说成是"句柄"。但指针也有着能

2019-01-25 10:03:10 1227 2

原创 windows多线程之CreateThread与_beginthreadex区别

使用多线程非常容易, 以前在linux上学习的时候没有这么详细的区分, 也没有深入的了解多线程, 在linux上只要包含头文件pthread即可, 最近学习windows上才有了很多区分, 例如C++11 新标准的头文件&lt;thread&gt;也是可以创建多线程或者windows.h中的CreateThread和_beginthreadex两个都是可以创建多线程的#include &lt;...

2019-01-25 09:46:11 377 1

原创 柔性数组

题外话:​ 以前有一次面试一家做系统的公司, 当时进去的时候,看面试官和蔼可亲, 上来第一个问题就是问结构体大小的判断, 当时觉得这种问题应该很简单, 送分题目, 然后面试官这样说道struct t{ char a; int b; char a[0];};问我大小是多少, 为什么, 以及分析可变长数组的作用?当时并不知这方面知识,虽然后面几个问题回答的可以, ...

2019-01-23 14:05:31 125

原创 环形缓冲区

本文缓冲区部分总结网上多个文章, 线程锁为原创环形缓冲区环形缓冲区的定义环形缓冲区: 存储数据的环状区域, 存储结构分为多种, 可以采用不同的数据结构实现, 特点是读和写是分开的, 写入数据之后可先不去读取, 读取数据完毕后就丢弃例如我们用数组的方式定义来说char circleBuff[256] = {0};/* code*///写入数据到某一位circleBuff[...

2019-01-23 10:51:38 685

原创 Python2之数字以及字符串处理

range() 函数range(1,5) #1 - 4##输出#[1, 2, 3, 4]range(1,5,2) #以2为步长##输出#[1, 3]for i in range(5) #默认从0开始 print i数字与ASCLL的 互相转换int(x [,base ]) #将x转换为一个整数 long(x [,base ]) ...

2019-01-15 08:58:17 367

原创 python2之字典

pople = { 'Alice':{ 'phone': '15897693332', 'addr': 'a' }, 'Beth':{ 'phone': '158', 'addr': 'b' }, 'Cell': { 'phone': '3332', 'add...

2019-01-14 16:53:58 398

原创 python2之引号的作用

#单引号的作用#就输出字符串而言, 单引号双引号都能达到输出字符串的效果1. 特殊情况#但是例如我们想输出 c:\node\python2print 'c\node\python2'##输出#c:#ode\python2##解决方法1print 'c:\\node\python2'#输出: c:\node\python2##解决方法2print r'c:\node\...

2019-01-14 16:53:35 630

原创 python2之无法显示中文

#输出 hello worldprint "hello world"print "你好世界"##输出#error: SyntaxError: Non-ASCII character '\xe4' in filePython中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。解决方法为只要在文件开头加入 # -- coding: UTF-...

2019-01-14 16:53:19 2997

原创 python2之函数

def init(stor): stor['fir'] = {} stor['mid'] = {} stor['sed'] = {}def lookup(data, lable, name): return data[lable].get(name)def Sor(data, full_name): names = full_name.split()...

2019-01-14 16:53:01 131

原创 python2之list方法

append# 在末尾添加新的对象ls = ['a', 'b', 'c']ls.append('d')print lsprint ls[0]+ls[1]+ls[2]+ls[3]count#添加某个元素出现个数print [[1, 2, 1], 3, 1][0].count(1)##输出#2print [[1, 2, 1], 3, 1].count(1)##输出...

2019-01-14 16:52:47 1429

原创 python2之随机数

python random使用方法介绍关于python生成随机数与random模块##生成随机数在指定范围内#coding=utf-8import randomprint random.uniform(10,20) #生成10-20print random.uniform(20,10) #生成10-20的随机浮点数print random.randint(10,20) #生成1...

2019-01-14 16:52:07 942

原创 Python之基本数据类型

python基本数据类型a, b, c = 1, 2.5, 3+4j #赋值方式, 支持复数"""标准数据类型分为Number----数字String----字符串List------列表Tuple-----元组Set ------集合Dictionary--字典可变与不可变数据类型:可变数据类型就是允许数值发生改变,不可变就是不允许,其中差别:不可变数据类型如果使用赋值等...

2019-01-09 08:21:49 440

原创 动态数组

new和数组/* 1. c++ 提供了两种一次分配一个对象数组的方法, C++定义了另一种new 的表达式,可以分配并初始化一个对象数组 标准库中有一个allocator类, 允许我们将分配和初始化分离 2. 动态数组是new在分配的时候可以带入参数 void f(int a[]) { int *p = new int[sizeof(a)]; //载入的参数不同每次分配的数...

2019-01-09 08:16:08 159

原创 函数指针

/* 时间: 2018/11/12 书籍: c++ primer 第五版 部分c++11标准*函数指针顾名思义如何定义一个函数指针?把函数名换成指针即可int minus(int a,int b);int (*pf_minus)(int,int);//指向含有两个int形参返回值为int的函数如何用typedef来表示//表示pf_minus就是指向含有两...

2019-01-09 08:14:57 118

原创 构造函数和析构函数

类的对象的初始化只能由成员函数来进行建立对象的同时, 自动调用构造函数用类名而作为构造函数比较合适默认构造函数c++规定每个类都有一个构造函数默认构造函数(如果是全局对象就是零,其余的给对象的初始值为不确定值)只要提供了构造函数就没有默认构造函数构造函数没有返回值并且可以重载构造函数在创建对象的时候自动调用构造函数的初始化列表最好按照在类中的声明顺...

2019-01-09 08:14:05 105

原创 内联函数

内联函数关键字: inline也叫镶嵌函数函数调用需要建立栈内存环境, 进行参数传递, 并产生程序执行转移, 这些工作都需要一些时间开销, 有些函数使用频率高, 但是代码很短c++提供inline函数, 减少函数调用成本.编译器看到inline后, (一般)为该函数创建一段代码, 以便在后面每次调用都用一段代码来替换, 内联函数的初衷是为了空间换取时间的更快, 所以不能在内联函数内加上...

2019-01-09 08:13:22 3488 1

原创 引用

引用操作引用&amp;只有在声明引用时是引用操作符, 其余的都是取地址操作符引用和指针的差别指针是一个变量, 可以在赋值指向别处的地址建立引用必须进行初始化绝不会再关联其他不同的变量没有空的引用但是有空的指针void引用是不合法的void &amp;a = 3: void 只是在语法上相当于一个类型, 本质上不是类型, 但是没有任何一个变量或对象,其类型为voi...

2019-01-09 08:12:41 218

原创 泛型编程

函数模板泛型编程: 独立于特定类型的方式编写代码模板是泛型编程的基础STL/Boost含有大量模板现在框架大多都是用了模板类模板和函数模板模板使程序员能够快速建立具体类型安全的类库和函数集合, 方便大规模的软件开发泛型编程定义模板: 模板是为了解决除了函数参数类型不同其余相同的一类函数而出现的#include &lt;iostream&gt;template ...

2019-01-09 08:12:00 1065

原创 c++深入理解const以及相关联的引用知识

/*时间: 2018/11/12书籍: c++primer 第五版 c++11标准*/const的分类const分为两种, 一种是底层的const, 一种为顶层的const底层const底层的const表示指向是常量, 指针本身是变量或者变量顶层const顶层const表示指针本身是常量, 指向为变量或者常量const的赋值含义//省略头文件以及命名空间...

2019-01-07 19:24:29 253

原创 顺序容器操作

从标准输入读取string序列, 存入deque, 编写一个循环, 打印deque 的元素#include &lt;string&gt;#include &lt;deque&gt;#include &lt;iostream&gt;int main(){ std::deque&lt;std::string&gt; dq_str; std::string temp; ...

2019-01-07 19:24:03 98

原创 迭代器

构成迭代器的范围有何限制迭代器的范围未左闭右开的范围, 及end() 指向是最后一个元素的后一个元素我们可以通过递增begin()来到达end(), 若两个相等表示容器未空, 指向首元素,编写函数, 通过一组迭代器找到范围里面你的某个值, 如果没有找到处理返回值的情况, 如果找到了返回迭代器#include &amp;lt;iostream&amp;gt;#include &amp;lt;vect...

2019-01-07 19:23:24 142

原创 虚表指针

#include &lt;cstdio&gt;class Base {public: virtual void f() { cout &lt;&lt; "Base::f" &lt;&lt; endl; } virtual void g() { cout &lt;&lt; "Base::g" &lt;&lt; endl; } void h() { cout &a

2019-01-07 19:22:26 189

原创 恐怖的野指针

在C++类中出现野指针大概率是浅拷贝的问题/*1.浅拷贝的意思是类中成员有部分是在对上申请的空间赋值, 然后当直接用一个对象对另一个对象赋值的时候, 如果没有重载运算符或者重写拷贝构造函数, 那么就会按照位复制的方法, 那么此时类中的成员指向的是同一块内存空间,如果其中一个类被释放, 调用了析构函数, 那么另一个类指向了一片被释放的空间, 此时如果这个类也被释放了, 那么系统就会提示二次释放,...

2019-01-07 19:21:49 297

原创 编译错误

解析问题/* 无法解析外部符号,改符号在_main中被引用 1. 因为开始创建源文件的时候添加的是头文件, 然后重命名为.cpp, 然后编译出现如下情况, 如果把头文件和 函数声明放在main.cpp函数里面的时候是没有问题, 可以通过编译的 解决方法: 重新创建一个.cpp的对应类的声明, 重新编译无问题. 2. 当类中出现了static变量的时候, 要在.cp...

2019-01-07 19:21:10 216

原创 C++thread类探究

关thread 是C11新标准的类介绍之前熟悉异常的使用也是很重要的头文件exception 和 stdexcpet是c++11处理异常的头文件/* 当我们通过throw返回异常的时候, 如果是线程的异常不能通过在主函数里面捕捉, 这样是捕捉不到的, 因为可能异常出现的时候主函数以及运行完毕了, 到时候没有接受到异常 所以采用如下方法*/#include &lt;thread&gt...

2019-01-07 19:20:27 201

原创 C/C++可变参数列表

C语言 可变长参数//包含头文件 &lt;stdarg.h&gt;int sum(int nu,...){ va_list ap; int n, m = 0; va_start(ap,num); while(num--&gt;0) { n = va.arg(ap,int); m += n; } va_end(ap); return ...

2019-01-07 19:19:06 2458

原创 智能指针

shared_ptr 和 unique_ptr/* 头文件: &lt;memory&gt; //shared_ptr unique_ptr make_shared.... 智能指针: 当计数器到达0时, 自动释放指针所占内存, 分为两种 1. shared_ptr: 允许多个指针指向同一个对象, 若加入一个指针指向那么计数器++,若减少一个计数器--, 当计数器到达0时, 会自动释放指针所...

2019-01-07 19:18:00 139

linux压缩方式总结

linux的所有压缩方式总结,在这个中做了详细的分类, ...

2018-07-17

空空如也

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

TA关注的人

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