自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Win10+cpu+tensorflow搭建过程

参考链接:TensorFlow安装和下载(超详细)windows环境下tensorflow安装过程详解win10 + cpu + tensorflow 安装教程版本:一、conda 4.7.12下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/选择Anaconda3-2019.10-Windows-x86_64此版本Anaconda3自带python3.7.4,故不用提前单独安装python。二、tensorflow 2

2021-04-08 19:52:43 167

原创 OpenDDS在Linux与Windows上互通

前言之前在自己的电脑上安装了OpenDDS,在一个机子上用三个终端,分别运行信息仓库、发布端、订阅端,能够正常通信。于是利用实验室的Linux的机子,实现Win和Linux互通。步骤1 保证win和linux在同一个局域网里,相互ping通。ping不通可能是防火墙的原因,关掉。2 Linux与Windows里ACE+TAO、OpenDDS的版本保持一致。最先尝试互通的时候由于版本不一致,win上运行信息仓库和发布端,Linux上运行订阅端,信息仓库能收到订阅端的信息,但是订阅端会报程序出错,这个问

2020-06-26 16:01:53 754 2

原创 LRU缓存C++实现

LUR是一种缓存淘汰算法,淘汰原则是将最近不常访问的数据删除。程序使用双向链表+unordered_map,unordered_map实现O(1)的查找效率。用类LRU对双向链表和unordered_map进行封装,对外提供构造函数,插入函数Insert(int key, int value),获取值函数Getvalue(int key),获取大小函数Getsize(),获取容量函数Getca...

2020-04-20 17:47:14 350

原创 排序算法之归并排序c++实现

#include <iostream>#include <vector>using namespace std;void merge(vector<int>& a, int left, int mid, int right){ vector<int> temp; int m = left, n = mid + 1; while ...

2020-04-14 18:16:43 114

原创 面试题目----对单链表每k个节点反转

题目对单链表每k个节点反转,k取4,有:1 2 3 4 5 6 -> 4 3 2 1 6 51 2 3 4 5 6 7 8 -> 4 3 2 1 8 7 6 51 2 -> 2 11 -> 1代码#include <vector>#include <iostream>using namespace std;struct node...

2020-04-11 19:19:53 298

原创 面试题目--合并两个有序单链表

题目一个面试题目,将两个递增的有序单链表合并成一个递增单链表。有两种理解:1、new一个单链表,返回新的头节点2、在原链表上操作,返回新的头节点第一种实现较为简单,只需要从头比较链表的节点,将较小的插入新链表,被插入的节点指针后移,直至遍历整个链表。而在原表操作就相对复杂一点,主要有三部分:首先确定返回的头节点,中间遍历重定向链表指针,当某一个链表先遍历完之后末尾的处理。代码如下:#in...

2020-04-11 16:55:29 454

原创 c++实现一个堆排序

#include <vector>#include <iostream>using namespace std;//自顶向下调整void adjust(vector<int>& a, int len, int index){ int left = 2 * index + 1; int right = 2 * index + 2; i...

2020-04-03 16:27:24 112

原创 c++实现一个快速排序

代码#include <iostream>#include <stdint.h>#include <vector>using namespace std;void quicksort(vector<int>& arr, int left, int right){ if (left > right) return; i...

2020-03-24 17:22:26 93

原创 条件变量解决死锁的简单例子

首先写一个死锁两个线程a1、a2,a是共享资源,初始值为0。a1是生产者,访问共享资源并对它加一,a2是消费者,访问共享资源,直到非零,打印出来。一个问题时,当a2首先访问共享资源,并对此上锁时,a1无法访问a,更无法修改它。此时a2进入死循环,造成死锁。#include <iostream>#include <thread>#include <mutex&...

2020-03-22 11:41:54 579

原创 观察者模式(Observer模式)c++实现

什么是观察者模式?在回答这个问题之前,先看看这样一个场景。这段时间,疫情在全世界肆虐,很多人每天都会习惯性地用手机看数据的变化,数据有湖北省内外的对比,新增、死亡、治愈的对比,国内外的对比等等。根据数据的变化,手机的统计界面都会用曲线图或者饼状图呈现,然后用户就能很直观地看到数据的变化。其实这就是观察者模式的一个常见应用。定义“观察者模式(又被称为发布-订阅(Publish/Subscribe...

2020-03-16 17:10:57 193

原创 编译错误:jump to case label [-fpermissive] case '|':

在编译switch-case语句时,出现了报错:jump to case label [-fpermissive] case ‘|’:错误原因是在case语句中定义了变量,解决办法:1、将变量定义在switch-case语句之外;2、如果只在某一个case使用的局部变量,用大括号{}将这个case后的语句括起来,将变量的作用域限定在这一个case中。这也是为什么case下if、for等语句中...

2020-03-05 12:42:37 3383

原创 socket网络编程(四)-----基于线程池的并发服务器

服务器主线程在每收到客户端连接请求,创建一个工作线程,这会消耗服务器CPU资源,从而降低客户端的连接响应速度。服务器开启监听之前,可以预先创建工作线程,通过线程池管理这些线程。初始时,线程池可用的连接描述符为0,此时工作线程阻塞在取描述符中,当有连接请求时,主线程将accept()获得的描述符插入线程池,其中某一个工作线程会立马跳出阻塞,从线程池中取得描述符,然后开始和客户端通信。服务器端:#...

2020-01-16 22:59:01 615

原创 socket网络编程(三)-----基于多线程的并发服务器

服务器处理多个连接请求,上篇使用了fork()创建子进程,进程的创建和销毁,会消耗服务器大量的资源。利用线程去处理请求,减轻服务器断电压力。服务器端:#include<stdio.h>#include<stdlib.h>#include<fcntl.h>#include<unistd.h>#include <sys/socket....

2020-01-16 21:04:07 478

原创 socket网络编程(二)-----多进程并发服务器

实际应用中,一个服务器需要能够同时处理多个客户端的连接请求,在上一篇的代码中没能实现,本篇对上一篇的代码做了一点改进。服务器端将监听时间与处理请求这两个功能分开,主进程负责监听,当接收到客户端连接请求后,创建一个子进程与客户端通信,而主进程则继续监听。注意的时,每当主进程执行accept()获得请求的描述符,并创建子进程之后,需要将这个描述符关闭,因为子进程会完整得复制这个描述符。子进程处理完事件...

2020-01-16 20:31:32 274

原创 socket网络编程(一)-----处理一个客户端请求的简单服务器

最近学习了socket网络编程。socket处于应用层和传输层之间,应用程序通过socket在不同主机、进程之间连接起来,交换处理数据,从而屏蔽了底层的传输协议细节,如TCP协议中的三次握手、四次挥手。通过socket,客户端可以连接到服务器端,向服务器发出请求,相应地,服务器向客户端返回请求结果。socket是Web开发的基础。本章实现了一个简单的服务器\客户端模型:服务器创建一个监听描述符...

2020-01-16 17:22:55 412

原创 Workaholic Xiaoming-----工作狂小明

前言之前在自己的电脑上安装了OpenDDS,在一个机子上用三个终端,分别运行信息仓库、发布端、订阅端,能够正常通信。于是利用实验室的Linux的机子,实现Win和Linux互通。步骤1 保证win和linux在同一个局域网里,相互ping通。2 Linux与Windows里ACE+TAO、OpenDDS的版本保持一致。最先尝试互通的时候由于版本不一致,win上运行信息仓库和发布端,Linu...

2019-12-09 21:28:41 347

原创 OpenDDS在Windows10上编译

一、编译前准备1.1 环境win10perlvs20131.2 下载ACE+TAO与OpenDDSACE+TAO下载地址:http://download.dre.vanderbilt.edu/OpenDDS下载地址:http://download.ociweb.com/OpenDDS/如果需要下载旧版本,提供如下地址:ACE+TAO:http://download.dre.van...

2019-11-29 23:28:05 1107

原创 Tinyhttp学习之路

加粗样式写在前面最近在学习Linux网络编程,对客户端/服务端有了大致了解,纸上得来终觉浅,总觉得理解得不够彻底,于是在网上找了一个开源代码学习。tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的client,可以通过阅读这段代码理解一个 Http Server 的本质。下载链接:http://sourceforge.n...

2019-11-25 22:44:04 534

空空如也

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

TA关注的人

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