自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

倚忆易逸的博客

在校工科狗的日常积累

  • 博客(24)
  • 收藏
  • 关注

原创 grpc示例代码解析(二)

一,client.go 客户端主程序主要内容在注释部分package mainimport ( "context" "flag" "io" "log" "math/rand" "time" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/examples/data

2022-05-03 21:47:32 241

原创 grpc示例代码解析(一)

一、route_guide.proto文件// proto 语法版本syntax = "proto3";// 生成的 go 包路径,最后路径为包名option go_package = "google.golang.org/grpc/examples/route_guide/routeguide";// java 相关选项option java_multiple_files = true;option java_package = "io.grpc.examples.routeguide

2022-05-03 15:30:51 454

原创 grpc简介(三).md

一、安装protoc# 1,下载压缩包wget https://github.com/protocolbuffers/protobuf/releases/download/v3.15.6/protobuf-cpp-3.15.6.tar.gz# 2,解压tar -xzvf protobuf-cpp-3.15.6.tar.gzcd protobuf-cpp-3.15.6# 3,设置编译目录./configure --prefix=/usr/local/protobuf# 4,编译检测make

2022-05-03 15:26:16 178

原创 grpc简介(二).md

gRPC 与 HTTP:gRPC 也是一组库,它们将在通用 HTTP 库通常不提供的跨平台上一致地提供更高级别的功能。此类功能的示例包括:在应用层与流控制交互、级联呼叫取消、负载平衡和故障转移等。gRPC 与 REST:gRPC 在很大程度上遵循 HTTP2 之上的 HTTP 语义,并明确允许全双工流式传输。与典型的 REST 约定不同,在调用期间出于性能原因使用静态路径,因为从路径、查询参数和有效负载正文中解析调用参数会增加延迟和复杂性。另外,grpc还形式化了一组错误,这些错误比 HTTP..

2022-05-03 15:24:19 203

原创 grpc简介(一)

目录grpc 概述RPC四种服务方法RPC 生命周期调用过程grpc 概述gRPC 可以将协议缓冲区用作其接口定义语言和底层消息交换格式。在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法,就像它是本地对象一样,使得创建分布式应用程序和服务更加容易。与许多 RPC 系统一样,gRPC 基于定义服务的思想,指定可以远程调用的方法及其参数和返回类型。在服务端,服务端实现这个接口并运行一个 gRPC 服务器来处理客户端调用。在客户端,客户端有一个存根(在某些语言中仅称为客户端),它

2022-05-01 17:10:39 1060

原创 协议缓冲区

目录1,概述2,作用3,优势4,跨语言兼容性5,前后兼容6,不适合的情况7,工作过程8,字段类型9,额外的数据类型支持1,概述协议缓冲区提供了一种语言中立、平台中立、可扩展的机制,用于以向前兼容和向后兼容的方式序列化结构化数据。它类似于 JSON,只是它更小更快,并且生成本地语言绑定。协议缓冲区是定义语言(在 .proto文件中创建)、proto 编译器生成的与数据接口的代码、特定于语言的运行时库以及写入文件(或通过网络连接)。2,作用协议缓冲区为大小高达几兆字节的类型化结构化数据包提供了一种序

2022-04-28 17:50:43 2194

原创 go 的基本命令详解

文章目录go 的基本命令1 build flags2 go build3 go clean4 go doc5 go env6 go fix7 go fmt8 go generate9 go get10 go install11 go list12 go mod13 go run14 go test15 go version16 go vetgo 的基本命令go 命令的基本用法是:go command [arguments]go 的基本命令有:build, clean, env, fix, fmt,

2021-08-22 17:11:09 8589

原创 shell基本教程

shell解释器类型cat /etc/shells:查看系统中所有可用的shell解释器;echo $SEHLL:查看当前的shell解释器;#!:sh 文件中告知系统当前脚本使用的是哪种shell脚本;执行命令脚本的三种方法./脚本文件路径:./exa.sh;sh 脚本文件路径:sh exa.sh;source 脚本文件路径:source exa.sh;变量定义变量时,变量名不加 “$” 符号,变量名和等号之间不能有空格;还可以用语句给变量赋值,如:for file in

2021-08-22 16:54:28 289

原创 Python中的zip([iterable, ...])函数

zip([iterable, …]),此函数返回一个元组列表,其中第i个元组包含来自每个参数序列或可迭代对象的第i个元素。返回的列表在长度上被截断为最短参数序列的长度。当有多个长度相同的参数时,zip() 类似于map()初始参数为None。使用单个序列参数,它返回一个一元组列表。没有参数时,它返回一个空列表。zip() 与 * 运算符相结合可以用来拆解一个列表:>>> x = [1, 2, 3]>>> y = [4, 5, 6]>>> zipp

2021-07-22 19:16:24 228

原创 Python文件对象的方法

要读取文件的内容,请调用f.read(size),它读取一定数量的数据并将其作为字符串返回。 size是一个可选的数字参数。当 size省略或为负时,将读取并返回文件的全部内容。否则,最多读取和返回size个字节。如果已到达文件末尾,f.read()将返回一个空字符串 ( “”)。>>> f.read()'This is the entire file.\n'>>> f.read()''f.readline()从文件中读取一行;换行符 ( \n) 留在字符串的

2021-07-21 19:51:01 416

原创 Python列表推导式

1,列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列。例如,假设我们想创建一个平方列表,像这样>>> squares = []>>> for x in range(10):... squares.append(x**2)...>>> squares[0, 1, 4, 9, 16, 25, 36, 49, 64, 8

2021-07-21 19:41:40 635

原创 Python函数式编程工具filter,map,reduce

Python函数式编程工具filter()map()reduce()filter()filter(function, sequence)返回一个序列,该序列由序列中function(item)为真的那些项组成。如果sequence是 a str, unicodeor tuple,结果将是相同的类型;否则,它始终是list. 例如,要计算可被 3 或 5 整除的数字序列:>>> def f(x): return x % 3 == 0 or x % 5 == 0...>>

2021-07-21 19:32:37 135

原创 QT Designer 设计主窗口时如何更改工具栏默认顺序

1,工具栏的默认顺序是添加QToolBar的顺序,右键时也无法更改,如下图;2,编译运行时是基于.ui 文件进行编译的,也就是按照右侧工具栏的默认顺序进行编译,强行在ui设计界面上将工具栏拖动为指定顺序时,编译后显示的界面依旧是右侧工具栏的默认顺序,而不是拖动之后的顺序。所以要想更改此默认顺序,只能修改.ui的源文件,用文本编辑器打开,如下图,找到需要更改顺序的某个QToolBar所在的整块代码,如下代码,然后移动至指定QToolBar前即可,即更改QToolBar的文本文本顺序,保存之后用QT

2020-10-29 11:29:20 1327

原创 C++中虚析构函数的作用

作用:正确释放所有指向子类对象的指针或是引用。1,实例代码,基类虚析构函数;即正常调用基类和子类构造函数,然后调用子类和基类析构函数;2,示例代码,基类析构函数非虚函数;即构造时调用了基类和子类构造函数,但是只析构了基类构造函数,可能造成内存泄露。...

2020-10-23 20:18:44 224

原创 const关键字

1,如果关键字const出现在星号左边,便是被指物是常量;如果出现在星号右边,表示指针自身是常量;如果出现在两边,便是被指物和指针都是常量。(不定期持续更新。。。)

2020-10-08 20:17:43 102

原创 C++智能指针与容器

1,智能指针默认删除了复制构造函数,所以在使用智能指针过程中一旦无意中用到了其复制构造函数,便会出现C2280的错误,显示引用已经删除的函数。2,标准容器中存放的元素为智能指针时,应该返回为这个容器的引用,且最好是常引用,若是直接返回整个容器,便会调用复制构造函数;当vector使用resizer扩容时,会将对应的容器元素默认构造,那么std::unique_ptr默认构造会产生一个为NULL的指针,智能指针便不再生效,在使用前一定要初始化,出现尝试引用已删除的函数。3,返回智能指针时,可用std:

2020-09-27 11:26:03 1336

原创 error C2143: 语法错误 : 缺少“;”(在“*”的前面)

error C2143错误可能出现的原因,在返回类模板中自定义的类型时,需要在定义的函数前加上typename关键字,必须显式告知编译器ModeTree是模板类参考链接,vs官网https://docs.microsoft.com/zh-cn/cpp/error-messages/compiler-errors-1/compiler-error-c2143?view=vs-2015...

2020-09-05 18:02:17 975

原创 QT之QHash简介

QHash <Key,T>是Qt的通用容器类之一。它存储(键,值)对,并提供与键关联的值的快速查找。1,QHash提供与QMap非常相似的功能。不同之处在于:(1)QHash提供比QMap更快的查找,但所需空间更大。(2)QMap默认按照键值升序排序;。使用QHash按照键值任意排序。(3)QMap的键类型必须提供operator <()。QHash的键类型必须提供operator ==()和称为qHash()的全局哈希函数。2,一个QHash每个键只允许一个值.

2020-08-16 09:35:23 23233

原创 十大排序算法

//希尔排序void ShellSort(int data[], int arrSize){ int i, j, hCnt, h; int increments[20], k; for (h = 1, i = 0; h < arrSize; i++) {//创建增值数组 increments[i] = h; h = 3 * h + 1; } for (i--;i>=0;i--) {//遍历增值数组,创建不同的子数组 h = increments[i]; for

2020-07-22 21:51:20 314

转载 详细讲解二叉树三种遍历方式的递归与非递归实现

二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有前、中、后三种遍历方式,因为树的本身就是用递归定义的,因此采用递归的方法实现三种遍历,不仅代码简洁且容易理解,但其开销也比较大,而若采用非递归方法实现三种遍历,则要用栈来模拟实现(递归也是用栈实现的)。下面先简要介绍三种遍历方式的递归实现,再详...

2020-07-07 21:22:34 1433

转载 深入理解vector list deque——存储结构机理

         先来看一下 c++标准模板库中,容器类vector、list 、deque都属于顺行性容器(所谓顺序性容器是一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集,每个元素都有固定的位置,这个位置与元素无关,只与插入删除的先后顺序有关);都可以用来存储一组类型相同的对象;不同于内置数据类型数组的是,vector、list、...

2020-06-23 21:37:17 265

转载 C++const用法总结

    为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:  常变量:  const 类型说明符 变量名  常引用:  const 类型说明符 &引用名  常对象:  类名 const 对象名  常成员函数:&n...

2020-06-23 11:13:26 243

转载 C++之数据结构与算法

C++之数据结构与算法

2020-06-21 14:56:38 119

转载 C++之设计模式

C++设计模式——简单工厂模式C++设计模式——工厂方法模式C++设计模式——抽象工厂模式C++设计模式——单例模式C++设计模式——建造者模式C++设计模式——原型模式C++设计模式——适配器模式C++设计模式——桥接模式C++设计模式——组合模式C++设计模式——装饰模式C++设计模式——外观模式C++设计模式...

2020-06-21 14:41:40 93

空空如也

空空如也

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

TA关注的人

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