ChatNova——配置grpc客户端服务器VerifyServer
Grpc服务器gRPC是Google开发的一种高性能、开源的远程过程调用(RPC)框架。它可以让客户端应用程序像调用本地服务一样轻松地调用远程服务,并提供了多种语言的支持,如C++、Java、Python、Go等。gRPC使用Protocol Buffers作为数据格式,可以在不同的平台上进行应用程序之间的通信,支持多种编程语言和多种操作系统。它采用基于HTTP/2的协议,提供了高效、快速且可扩展的远程调用功能,并带有负载均衡、认证、监控等功能,方便用户管理和维护分布式系统。gRPC 使用Protocol Buffers(protobuf)作为接口定义语言(IDL)来定义消息和服务。protobuf 是 Google 开发的一个语言中立、平台中立的序列化数据格式。**Protocol Buffers (Protobuf)**:协议缓冲区 (Protobuf):Protocol Buffers 是一种轻量级的、语言中立、平台中立的序列化结构化数据的方法。
序列化是将数据结构(如对象)转换为字节流的过程,使其可以存储或通过网络传输。
反序列化是从字节流中恢复原始数据结构的过程 ...
ChatNova——登录界面设置
实现登录界面点击注册按钮后,主窗口显示注册页面效果展示:
主窗口 (MainWindow) 启动时显示 登录对话框 (LoginDialog).
登录对话框 上的注册按钮 (reg_btn) 被点击后,触发 switchRegister 信号。
该信号连接到 主窗口 (MainWindow) 的 SlotSwitchReg 槽函数,执行切换操作。
在 SlotSwitchReg 槽函数中,登录对话框被隐藏,注册对话框 (RegisterDialog) 被设置为新的核心部件并显示。
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); _login_dlg = new LoginDialog(); setCentralWidget(_logi ...
ChatNova——beast实现http服务器
GateServer网关服务器主要应答客户端基本的连接请求,包括根据服务器负载情况选择合适服务器给客户端登录,注册,获取验证服务等,接收http请求并应答。
1.boost的安装
Boost是一个广泛使用的C++库集合,它提供了许多增强C++功能的工具和组件。Boost库包括了用于高性能计算、并发编程、数据结构、算法、正则表达式、数学、图形、网络编程等方面的工具。
特点:
跨平台支持:Boost可以在多个操作系统和编译器上使用,包括Windows、Linux、macOS等。
广泛的标准库扩展:Boost库在很多方面补充和扩展了C++标准库,比如提供智能指针(boost::shared_ptr)和容器类型(boost::unordered_map)等。
高效能:Boost的许多实现专注于性能,经过精心优化,适合高性能计算任务。
与C++标准库兼容:许多Boost库的实现是C++标准库的一部分,因此它们的代码常常是可移植的,并且可以随着C++标准库的进化而优化。
常见的Boost库包括:
Boost.Asio:提供了异步输入输出(I/O)的支持,特别适用于网络编程。Boo ...
团队协作流程和 Git 使用规范
项目开发的git版本控制 关键思想是:每个人开发用自己的分支,保持与主分支同步,避免直接推主分支,合并通过 PR,由 reviewer 控制质量。
✅ 项目协作开发中的 Git 使用规范假设我和同事在开发一个项目,为了避免互相覆盖代码、造成冲突,我会遵循以下步骤和命令流程:
🔹 1. 确保使用 Git 分支管理(Feature Branch Workflow)每一个新需求或功能,都会从 main 或 dev 分支新建一个功能分支:
git checkout main # 切换到主分支git pull origin main # 拉取最新的主分支代码,确保是最新状态git checkout -b feat/login-page # 创建新功能分支
这样我和同事就可以各自独立在自己的功能分支上开发,互不干扰。
🔹 2. 开发过程中保持和主分支同步,避免冲突在开发周期中,我会定期从 main 分支同步最新代码,以避免积累冲突:
git fetch origin #从远程仓库获取所有最新的分支更新,但不会自动合并或修改你当前的工作分支。git reb ...
HOT100 (哈希&双指针)
哈希
1.两数之和(unordered_map)
给定一个整数数组 nums 和一个整数目标值 target,返回满足条件的数组下标
思路:用umap,一边遍历,一边装;
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int,int> umap; vector<int> result; for(int i = 0; i < nums.size(); i++) { if(umap.find(target-nums[i]) != umap.end()) { result.push_back(i); result.push_back(umap[target-nums[i]]); } ...
GDB
https://www.bilibili.com/video/BV1EK411g7Li/?spm_id_from=333.1387.homepage.video_card.click&vd_source=2eed67e9865f67de8eb4fd48aea09b6fhttps://sourceware.org/gdb/documentation/
1 GDB是什么东西2 解决什么问题3 quickstart快速应用4 了解它的底层是怎么实现
GDB是什么东西GDB调试器, 可以运行你在程序运行时检查里面到底发生了什么GDB可以做:
开始并设置参数可以打断点,在特殊情况下停止当你程序停止,检查发生了什么
搭建实验环境安装GBD安装gdbyum install gdb检查gdb是否成功安装gdb --version
QuickStart1 写程序
#include<stdio.h>int main(){ int arr[4] = {1,2,3,4}; int i = 0; for(i = ...
C++比较器(含堆栈的应用)
为什么会有比较器呢比较器(Comparator)的存在是为了解决一个核心问题:如何定义元素的顺序关系。
灵活性:支持自定义排序规则,对于结构体或类,没有天然的“大小”定义,必须通过比较器指定如何比较。
通用性:统一接口适配不同场景,像 sort、priority_queue 这样的模板函数/类需要适用于任意类型,但不同类型可能有不同的比较逻辑。比较器通过函数指针、函数对象或 Lambda 提供统一的接口。
数据结构的需求 堆(Heap):priority_queue 需要比较器决定元素的优先级(大根堆或小根堆)。 平衡树(如 std::map):红黑树需要通过比较器维护节点的有序性。 二分查找:lower_bound 依赖有序性,而有序性由比较器定义。
理解C++比较器C++比较器(comparator)是用于定义元素之间排序规则的函数或函数对象。
基本概念比较器是一个可调用对象(函数、函数对象或lambda表达式),它接受两个参数并返回一个布尔值,表示第一个参数是否应该排在第二个参数前面。(这很关键,另外前面是指当前位置的左边)
举个例子:return a & ...
行星滚柱丝杠
1.简单实验:Rollvis绘图分析
2.2009-Kinematics and efficiency analysis of the planetary roller screw mechanism.pdf
6 The Kinematics of the RSM With Elastic Deformation
与接触位置的组件的曲率半径相比,配合组件之间的接触面非常小,因此接触区域中的应力通常是显著的应力。也就是说,接触表面上或接触表面之下的应力是响应面组件失效的主要原因。
3 行星滚柱丝杠等效应力分析——GPT
行星滚柱丝杠失效的主要原因分析
行星滚柱丝杠的失效模式主要取决于其工作载荷、接触方式和材料特性。基于上述应力分析,主要的失效原因包括:
滚柱与螺纹接触处的疲劳失效(赫兹接触应力)
由于行星滚柱丝杠的滚柱与螺纹通常为线接触,接触应力较高,可能导致滚柱或螺纹表面产生微观裂纹,进而引发 接触疲劳 失效。
螺纹根部的疲劳断裂(弯曲应力)
螺杆在受力过程中,其螺纹根部承受较大的弯曲应力,长时间运行可能导致 弯曲疲劳断裂。
螺杆的轴向压溃或屈曲(压应力)
...
Go_basic
✅ 项目协作开发中的 Git 使用规范假设我和同事在开发一个项目,为了避免互相覆盖代码、造成冲突,我会遵循以下步骤和命令流程:
🔹 1. 确保使用 Git 分支管理(Feature Branch Workflow)每一个新需求或功能,都会从 main 或 dev 分支新建一个功能分支:
git checkout main # 切换到主分支git pull origin main # 拉取最新的主分支代码,确保是最新状态git checkout -b feat/login-page # 创建新功能分支
这样我和同事就可以各自独立在自己的功能分支上开发,互不干扰。
🔹 2. 开发过程中保持和主分支同步,避免冲突在开发周期中,我会定期从 main 分支同步最新代码,以避免积累冲突:
git fetch origin #从远程仓库获取所有最新的分支更新,但不会自动合并或修改你当前的工作分支。git rebase origin/main # 或 git merge origin/main
如果出现冲突,我会在本地手动解决冲突,再 ...
Rust_Lab
0 配置环境ssh-keygen -t rsa -b 4096 -C "你的邮箱";
cat ~/.ssh/id_rsa.pub;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDC0nQP0xNhMH9bkpKNWf+/gYt+xGWO0YbN6Zs1Sc0I53tA/pxRX2EBF+kJotTqZWkxFqN25VRwUCdJU5WwFKvRvM41fus5Lg6yZihLoYe3MyOXxUMphyOhfUH7hMBpBd9S3i8VEuOZe9hiXk2Kbmxdaamw90qH9AXiqNX9kkeqVU8V8/ZMtPyz5jdRpZ+eTI4yi0cVmPaBoK4HzPgkqUAvpJoZM2vZ5aCZi8d+mW0H9nuDqmMrJ1Sf9ErjEELHozA/tGufr5+0MVo3G9+VytUBotpT7+t8gWBVKROCNPW/iiaoZGZQhfsdQ66soVJUkCMYBpc+5aUbbjUxs5kgIPrH nowcoder@nowcoder ...