自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 联想Y7000安装Ubuntu1804(虚拟机)

环境:联想Y7000,VMware player 15, Ubuntu 18.04.3安装后启动时会卡在start network manager script dispatcher service的启动过程中,大概原因是因为Ubuntu的网卡驱动和Y7000的网卡驱动有冲突或者不适配的原因,解决方法:关闭虚拟机打开虚拟机设置,在硬件-》选项-》网卡 中关闭启动时连接网络的选项重新打...

2020-02-03 22:09:27 1829 2

原创 Vue入门todolist组件

<!DOCTYPE html><html><head><meta charset="utf-8">&

2019-03-16 19:53:16 324

原创 Vue入门

创建第一个Vue实例<!DOCTYPE html><html><head><meta charset="utf-8">&a

2019-03-16 19:05:49 177

原创 Ubuntu安装问题汇总

1. 开机提示acpi error一般这个问题是因为显卡的原因造成的,系统没有带显卡驱动,所以会有电源管理方面的问题解决方法:安装时在install ubuntu界面按e,在linux开头那行的末尾处加入 acpi=off然后保存进行安装安装完成后重启如果不能进入系统或者提示acpi error,同样在grub引导界面按e,同样的位置加入acpi=off...

2018-12-14 12:51:41 935 1

原创 python子线程中执行事件循环

问题: sanic中使用用redis的订阅发布实现功能,如果没有发布的情况下,redis是阻塞在订阅处的,导致sanic无法处理路由。原因: sanic自带的websokcet是协程执行的(在一个线程中循环执行一个事件循环),redis也是单线程的,订阅时如果没有任何消息发布,线程会阻塞在订阅消息处,导致线程阻塞,由于整个系统只在一个线程中运行,所以sanic无法处理其他路由from sani...

2018-12-06 11:32:11 2169

原创 ubuntu升级python版本(3.5->3.6)

安装aioredis时提示Python版本需>=3.5.3,所以进行升级命令如下:#获取最新的python3.6,将其添加至当前apt库中,并自动导入公钥$ sudo add-apt-repository ppa:jonathonf/python-3.6$ sudo apt-get update$ sudo apt-get install python3.6# 移除原3.4li...

2018-11-15 13:31:52 16646 1

原创 条件变量

条件变量(condition_variable): 假设现在有两个线程A和B,当线程A执行到一定程度时才能让线程B执行,这个时候就需要条件变量了,我们设置一个全局变量,初始条件为假,线程B等待条件为真,向下执行,条件由线程A设置为真。 这样的需求,就好像是线程B一直在轮询条件,但是在轮询的过程中会一直消耗CPU,导致资源的浪费,所以就设置了通知机制,当线程A将条件设为真之后通知B。 另外就是...

2018-08-26 16:15:59 753

原创 自旋锁

C++11 版不带自旋锁的API,我们可以手动实现,有的时候线程执行的功能比较简单,或者说代码量较少,如果使用mutex的话,开销比较大,但是使用mutex的锁,线程处于非运行态时不占用CPU,这是其他的线程可以运行,使用自旋锁时线程被阻塞,但是被阻塞线程依然不会让出CPU,而是会不断的while来检查锁的状态,有点浪费CPU,所以自旋锁一般适用于简短的不耗时的线程 自旋锁可以使用如下方式来实现...

2018-08-25 21:08:21 2945

原创 二叉树的性质

二叉树的每层上至多有2i−12i−12^{i-1}个节点(i>=1)深度为k的二叉树至多有2k−12k−12^k-1个节点,满二叉树的深度k=log2(n+1)k=log2(n+1)k=log_2(n+1),n是二叉树的节点个数对于任何一棵二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1 推倒: 假设二叉树的节点总数为n,度为1的节点个数为n1 n=n0+...

2018-08-22 09:08:15 284

原创 逆波兰计算(中缀转后缀、后缀表达式计算)

我们利用栈将中缀表达式转换为后缀表达式(逆波兰表达式)来计算表达式此程序支持整数运算(+、-、*、/、^、()) 中缀表达式转后缀表达式遍历中缀表达式,遇到操作数就输出,遇到符号就压入栈中(栈中的运算符为挂起状态),但是操作符的压栈出栈有如下规则:如果当前运算符的优先级高于栈顶运算符,则直接将此运算符压入栈中 如果当前运算符的优先级低于栈顶运算符,则将栈顶运算符输出,直到碰见优先...

2018-08-20 10:31:36 299

原创 栈和队列(笔记)

栈先进后出的特性,也就是对于的插入和删除操作都是在栈顶进行的队列先进先出,从队尾插入,对头弹出一般情况下栈用顺序表来实现,因为栈的操作需要栈顶进行弹出操作,此时需要将栈顶指针指向上一个元素,如果用链表来做,则需要从头开始查找(单链表),使用循环链表也需要将指针循环一圈,此时的时间复杂度都是O(n),也可以采用双向链表,但是双向链表实现起来并不简单(和顺序表相比),而使用线性表来进行弹出操作...

2018-08-20 08:09:27 242

原创 互斥量mutex

互斥量是将资源互斥,即进程在某一相同的程序时,可以将某一程序片段设定为互斥量,线程不能同时访问此代码段,只有当前线程退出此互斥锁,另一线程才可以进入// mutex互斥量.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <thread>#include <cstdio>#include <iostr...

2018-08-02 09:53:43 690

原创 一个原子操作的小例子-赛跑

生命一个atomic_flag对象,此对象是一个BOOL类的变量,有两种操作test_and_set   将atomic_flag对象设置为true并获得设置之前的值,如果atomic_flag为false,则test_and_set会将此值设置为true并返回false,如果为true,则设置为true,并返回true clear  将atomic_flag变量设置为false,无返回值...

2018-08-02 09:22:25 861

原创 原子操作atomic

C++中有atomic类和atomic_flag两个类,其中atomic类用于定义一个原子操作,atomic_flag定义一些与原子操作相关的函数如下操作:// atomic原子操作.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <atomic>#include <iostream>#include...

2018-08-02 08:55:58 905

原创 信号量

 信号量(Semaphore)也是多线程控制中的同步机制,临界区每一只允许有一个进程访问临界资源,信号量可以设置多个进程同时访问某一资源,在设置的线程数范围内,每增加一个线程,信号量的计数就会减1,直至计数减为0,不再发出信号,其他线程不能再访问共享资源,一旦有线程完成任务,退出访问共享资源,信号量计数就会加1,产生信号,其他线程可以进入HANDLE WINAPI CreateSemap...

2018-07-30 22:07:54 248

原创 python读取txt文件中的数组

def read_data(dir_str): ''' 此函数读取txt文件中的数据 数据内容:科学计数法保存的多行两列数据 输入:txt文件的路径 输出:小数格式的数组,行列与txt文件中相同 ''' data_temp=[] with open(dir_str) as fdata: while True: ...

2018-07-30 21:30:21 9490

原创 线程死锁产生的必要条件

互斥条件:一个资源每次只能被一个进程使用 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放 不可剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺 循环等待条件:若干进城之间形成一种头尾相接的循环等待资源关系死锁演示程序:// 死锁.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <proces...

2018-07-30 20:06:45 353

原创 windows并发编程API(五)-应用

火车票两个窗口售票,两个窗口(开启两个线程)同时在售票,总票数n张,两个窗口单独售票,使用的API如下:_beginthread//创建线程WaitForMultipleObject//阻塞等待线程执行Sleep//线程休眠 程序例程:// 两个窗口售卖火车票.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include...

2018-07-29 19:26:41 346

原创 windows并发编程API(四)

在使用涉及到CRT存储堆操作的CRT库函数中的多线程编程中,使用CreateThread来开始线程是很危险的,容易造成线程的意外终止,windows核心编程中推荐使用_beginthread、_beginthreadx和相对应的_endthread、_endthreadx函数uintptr_t _beginthread( // NATIVE CODE void( __cdecl *st...

2018-07-28 19:33:22 213

原创 windows并发编程API(三)

DWORD WINAPI WaitForMultipleObjects( _In_ DWORD nCount, _In_ const HANDLE *lpHandles, _In_ BOOL bWaitAll, _In_ DWORD dwMilliseconds);nCount-要等待的线程的个数 lpHandles-句柄数组名...

2018-07-28 18:39:28 321

原创 windows并发编程API(二)

DWORD WINAPI WaitForSingleObject( _In_ HANDLE hHandle, _In_ DWORD dwMilliseconds);等待线程执行hHandle-线程句柄 dwMilliseconds-等待毫秒数,设置为INFINITE,则为无线等待,有点join的意思返回参数WAIT_ABANDONED   WAIT_OBJE...

2018-07-28 16:57:06 237

原创 windows并发编程API(一)

HANDLEWINAPICreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINE lpStartAddress, _In_opt_ __drv_aliasesMem LPVOID lp...

2018-07-28 15:33:48 667

原创 qt使用

安装就不说了,网上一搜一大箩筐新建工程:文件->新建文件或项目,图片如下:上图中是选择一个QT界面进行开发,点击“choose”之后可已新建一个空的文件夹,并将“设为默认的项目路径”前面打勾,这样编译,调试的一个文件都会放在新建的文件夹下,方便管理我安装的时候全部组件都选择了,所以会有这么多的选项,选择MinGW就行了,此处可能出现没有可用的kits的问题,自行百度解决吧,或者安装的时候全选...

2018-05-08 09:36:30 253

原创 UBuntu python切换版本

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150sudo update-alternatives --config python

2018-04-25 14:03:35 581

原创 计算字符串最后一个单词的长度,单词以空格隔开

题目描述计算字符串最后一个单词的长度,单词以空格隔开。 输入描述:一行字符串,非空,长度小于5000。输出描述:整数N,最后一个单词的长度。示例1输入hello world输出5#include<iostream>#include<string>using namespace std;int main(){ string str; getline...

2018-04-15 17:59:56 1743

原创 MNIST手写数字库格式转换(c++可用的格式)

static int ReverseInt(int i) //转换魔数,读取数据库中的图片数,行数,列数等信息{ unsigned char ch1, ch2, ch3, ch4; ch1 = i & 255; ch2 = (i >> 8) & 255; ch3 = (i >> 16) & 255;...

2018-04-12 16:42:35 387

原创 opencv创建进度条使用userdata

#include<iostream>#include<opencv2/highgui.hpp>#include<opencv2/core.hpp>#include<opencv2/imgproc.hpp>using namespace std;using namespace cv;int definePos=50;char str[]=...

2018-04-09 17:05:24 547

原创 类的大小(sizeof)

类的大小与成员变量(非static)和虚函数指针有关,还要考虑4字节对齐struct A{//32位编译器 A() {} ~A() {} int m1; int m2;};struct B:A{ B() {} ~B() {} int m1; char m2; static char m3;};struct C{ ...

2018-03-28 09:44:57 334

原创 小觅MYNTEYE双目摄像头环境搭建

1.打开盒子里面有一块主板和一根儿数据线2.插电脑USB3.0(一定要3.0)口,点击主板上的小按钮,若在松手时绿灯闪烁则说明供电正常(点击按钮是重启)3.查看电脑设备管理器中是否有MYNTEYE4.下载MYNTEYE Previewer软件百度网盘,找到相对应版本的exe文件(windows下),一般都是最新的,本人使用的1.8版的5.管理员权限安装(可任意路径,最好没有中文)6.安装完成后重启...

2018-03-06 22:16:15 18982 4

原创 python读取文件夹中文件的名字

本程序自己经常用,所以在此做个笔记:import osfor a,b,c in os.walk(r'F:\Pythoncode'): print(a) print(b) print(c)for i in c: print(i)a:路径名b:当前路径下的文件夹名字c:当前路径下的文件名字如果当前路径下有文件夹,则继续深入先深入,在广度,即沿着当前路径深入下去,直...

2018-03-06 20:54:17 6206

原创 MFC添加菜单的位置及其响应顺序

新建MFC工程然后点击资源视图->Menu->双击资源,添加菜单按钮TEST在资源视图中右击TEST按钮->属性->Popup设置为False->右击TEST按钮->添加事件处理程序依次选择四个类CMainFrame、CAPP、CDoc、CView,分别添加时间处理程序本实验添加MessageBox,通过显示不同的内容来判断是响应顺序上述的类中CMenuDoc和...

2018-02-26 21:47:50 1013

原创 python读取txt文件中的数组

写此博客只是为做笔记def read_data(dir_str): ''' 此函数读取txt文件中的数据 数据内容:科学计数法保存的多行两列数据 输入:txt文件的路径 输出:小数格式的数组,行列与txt文件中相同 ''' data_temp=[] with open(dir_str) as fdata: wh

2018-01-24 19:29:29 9837

原创 C++传递二维数组参数

传递一维数组比较简单定义函数:void function1(int *p,int size);.//size是数组大小另调用程序中定义有数组:int a[5] = { 1, 2, 3, 4, 5 };函数调用时如下:function1(a, 5);在被调函数中使用元素时*(a+i)表示的就是元素a[i]--------------------

2017-12-10 14:09:23 429

原创 C++从txt文件中读取二维的数组

此文章用来做笔记,从MATLAB中保存的二维数组1500*2的数据到txt文件中,格式化保存方式如下:MATLAB代码:fid=fopen('data.txt','wt');for i=1:1500 fprintf(fid,'%.3f\t%.3f\n',r(i,:));endfclose(fid);其中r是1500*2的矩阵在C++中读取到程序中,使用文件流:

2017-12-09 20:57:34 29152 3

原创 C++格式化输出

C++常采用cout数据流来输出字符,当然也可以使用printf语句(要包含stdio.h头文件),但是在C++中还是常采用cout cout可以使用setw(int n)来设置域宽,此操作符作用于后面的操作数,如:cout<<"s"<<setw(8)<<"a"<<setw(4)<<"b"<<endl;输出结果:`s a b`其中setw(8)作用于”a“,setw(4)作用于”b

2017-11-16 12:57:41 786

原创 C++按位操作

C++能够对数据按二进制位进行运算,有6个位运算符。 首先区分一下与(&&)和按位与(&)、或(||)和按位或(|)、取反(!)和按位取反(~),还有另外三个位运算符分别是左移位(<<)、右移位(>>)、按位异或(^) 按位与(&): 将两个操作数对应的每一位分别进行逻辑与操作(3&5=1) 使用按位与(&)操作符可以将操作数中若干位置0(其他位保持不变),或者取操作数中的若干指定位。

2017-11-15 12:56:20 2091

原创 django初探

前几天用python写nao机器人了,就顺带多花点时间把django了解一下吧django是python写后台时用的框架安装djangosudo pip install django==1.8                安装1.8版的django     也可省略==1.8  安装最新版的django建立django工程:django-admin.py startproje

2017-11-06 20:22:45 155

原创 ubuntu下visual studio code配置C++环境

1.安装第三方插件:在扩展商店里搜索C++,使用微软推荐的插件,2.在电脑中新建一个文件夹(C++只能在文件夹中编译执行,不能单独使用一个文件,也就是说要打开一个文件夹),在文件夹中新建一个.cpp文件3.visual studio code打开文件夹4.在.cpp文件中添加c++程序#include#includeusing namespace std;int main()

2017-11-04 17:08:19 4851 1

原创 nao机器人使用

nao编程控制方式:1.使用Choregraphe此方法是建立指令盒(参考手册),举例说明建立一个设置关节角度(控制关节移动)的指令盒,新建脚本指令盒,编辑名字,提示,输入输出点,还有参数输入点:可添加多个输入点,每个输入点都会在脚本文件中创建相应的方法,脚本文件中方法的名字和设置输入点时的Name相对应,如默认输入点名字onStart,在脚本文件中对应的会产生 如下方法:当此输入点被

2017-11-03 22:16:56 5993

原创 jade include和extends、block

jade模板是MVC模型中的V--视图,可以编写网页文件,元素和HTML相同,基本使用就是将html中的标签尖括号去掉,如:HTML:这是HTML中的写法jade:p 这是jade中的写法上述两种写法的显示效果相同但是在jade中没有结束标签,浏览器或者说编译器(从jade编译输出成HTML)是怎么判断每个标签的结束范围呢jade中采用的方法是缩进,子标签比父标签向后缩进两个空

2017-10-16 19:22:13 2494

空空如也

空空如也

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

TA关注的人

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