26考研 | 王道 | 数据结构 | 第一章 数据结构绪论
26考研 | 王道 | 数据结构 | 第一章 数据结构绪论 1.1 数据结构的基本概念 数据:数据是信息的载体,符号的集合、所有能输入到计算机中并能被计算机程序处理的符号的集合,数据是计算机程序加工的原料。 数据元素:数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成。 数据项:构成数据元素的不可分割的最小单位。 数据对象:数据对象是具有相同性值的数据元素的集合,是数据的一个子集。 数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 举例需要理解几点: 学校里的好多类型的表:数据 单独的一张成绩单表:数据对象 成绩单中每一行有姓名、课程、班级、成绩:数据元素 成绩单中每一行的每一个表格姓名等都是一个个的数据项 1.2 数据结构的三要素1.2.1...
黑马程序员 | Git详细教程笔记 | 使用命令 | 从安装到入土
黑马程序员 | Git详细教程笔记 | 使用命令 | 从安装到入土黑马程序员Git全套教程,完整的git项目管理工具教程,一套精通git_哔哩哔哩_bilibili 笔者就看了前22p,2倍速粗略的学了一下 一、概述 Git是分布式版本控制工具 分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无 需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。 特点: 1.速度 2.简单的设计 3.对非线性开发模式的强力支持(允许成千上万个并行开发的分支) 4.完全分布式 5.有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量) 二、工作流程图 命令如下: clone(克隆): 从远程仓库中克隆代码到本地仓库。 checkout (检出):从本地仓库中检出一个仓库分支然后进行修订。 add(添加):...
Day57 | 灵神 | 相向双指针:四数之和&&有效三角形的个数
Day57 | 灵神 | 相向双指针:四数之和&&有效三角形的个数18.四数之和18. 四数之和 - 力扣(LeetCode) 思路: 在三数之和的基础上再套了一层循环 i在最外层,然后对i去重 j,l,r就是三数之和的代码 区别在于: 1.对于第二个数字num[j]的去重:因为j是从i+1开始的,而j对j的去重只能是在j自己的遍历过程中,即,当j大于i+1时,这说明j-1>i,说明此时去重不会让j==i的情况给去掉了 2.如果数组大小小于4那就没必要列举了 3.leetcode增大了数值,要使用long long防止溢出 主要是防止四个数字相加时的溢出,所以四个数字相加时至少得有一个是long long类型 完整代码: 12345678910111213141516171819202122232425262728293031323334class Solution {public: vector<vector<int>> fourSum(vector<int>& nums,...
Day56 | 灵神 | 相向双指针:四数之和&&有效三角形的个数
Day56| 灵神 | 相向双指针:统计和小于目标的下标对数目&&最接近的三数之和2824.统计和小于目标的下标对数目2824. 统计和小于目标的下标对数目 - 力扣(LeetCode) 思路: 和两数之和思路一样 大了就r– 小了就收集答案 完整代码: 12345678910111213141516171819class Solution {public: int countPairs(vector<int>& nums, int target) { sort(nums.begin(),nums.end()); int res=0; int l=0,r=nums.size()-1; while(l<r) { if(nums[l]+nums[r]>=target) r--; else { ...
C++集群聊天服务器项目博客目录
C++集群聊天服务器项目博客目录C++集群聊天服务器项目总概述-CSDN博客 github源码地址: DarlingGYQ/chatserver: 基于C++11的可以工作在nginx tcp负载均衡环境中的集群聊天服务器和客户端源码 环境配置windows下使用vscode远程连接Linux服务器进行开发-CSDN博客 ubuntu安装MySQL-CSDN博客 ubuntu安装Redis-CSDN博客 Ubuntu环境下安装部署Nginx-CSDN博客 在 Ubuntu 上安装 Muduo 网络库的详细指南_如何安装muduo库呢-CSDN博客 服务器端C++项目 | 集群聊天服务器 | Json-CSDN博客 C++项目 | 集群聊天服务器 | moduo网络库-CSDN博客 C++项目 | 集群聊天服务器 | CMake-CSDN博客 C++项目 | 集群聊天服务器 | Mysql-CSDN博客 C++项目 | 集群聊天服务器 | 工程目录创建-CSDN博客 C++项目 | 集群聊天服务器 | 网络模块-CSDN博客 C++项目 | 集群聊天服务器 |...
C++项目 | 集群聊天服务器 | 服务器集群
C++项目 | 集群聊天服务器 | 服务器集群1.负载均衡存在的意义为什么要有负载均衡器? 一台机器的文件描述符是有限的,之前的linux系统最大也就1024,那说明也就同时最多可以提供1024个人的服务聊天服务还是长连接,需要一直保持和服务器的连接才行,那么随着用户规模的扩大,就需要更多的服务器,而负载均衡器就是负责把这些请求分发到不同的服务器上面去。不可能说是给用户三台服务器,让用户自己选要用哪一台提供服务 第一点是基本功能 第二点,保持心跳是以防有的主机发生了故障,不能够继续工作,那么负载均衡器不可以往这个服务器发送请求服务的请求 第三点,一般服务器都是24小时不关的,因为可能24小时都有人请求服务,不可能说是为了添加新的机器就把服务给停掉,这样的话用户体验会很差,所以要有第三点 2.服务器集群负载均衡器 -...
C++项目 | 集群聊天服务器 | 项目管理以及github托管
C++项目 | 集群聊天服务器 | 项目管理以及github托管项目的github地址:DarlingGYQ/chatserver: 基于C++11的可以工作在nginx tcp负载均衡环境中的集群聊天服务器和客户端源码 1.github中ssh key申请1、首先需要检查你电脑是否已经有 SSH key运行 git Bash 客户端,输入如下代码: 12$ cd ~/.ssh$ ls 这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。 2、创建一个 SSH key1$ ssh-keygen -t rsa -C "your_email@example.com" 代码参数含义: -t 指定密钥类型,默认是 rsa ,可以省略。-C 设置注释文字,比如邮箱。-f 指定密钥文件存储文件名。 以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如: 12Generating...
C++项目 | 集群聊天服务器 | 客户端好友功能和群组功能开发以及退出功能实现
C++项目 | 集群聊天服务器 | 客户端好友功能、群组功能开发以及退出功能实现1.服务器支持的命令123456789101112131415161718192021222324252627282930313233343536// "help" command handlervoid help(int fd = 0, string str = "");// "chat" command handlervoid chat(int, string);// "addfriend" command handlervoid addfriend(int, string);// "creategroup" command handlervoid creategroup(int, string);// "addgroup" command handlervoid addgroup(int, string);// "groupchat" command...
C++项目 | 集群聊天服务器 | 客户端首页功能开发
C++项目 | 集群聊天服务器 |...
C++项目 | 集群聊天服务器 | 群组功能业务
C++项目 | 集群聊天服务器 | 群组功能业务实现三个功能: 1.创建群 2.加入群 3.群里聊天 1.相关的数据库表 2.消息类型12345678910111213enum EnMsgType{ LOGIN_MSG=1, //登录消息 LOGIN_MSG_ACK, //登录响应消息 REG_MSG, //注册消息 REG_MSG_ACK, //注册响应消息 ONE_CHAT_MSG, //聊天消息 ADD_FRIEND_MSG,//添加好友消息 CREATE_GROUP_MSG,//创建群组 ADD_GROUP_MSG,//加入群组 GROUP_CHAT_MSG,//群聊天}; 3.groupuser.hpp用来存储群组成员信息的 对比user多了一个role,表明是管理员还是普通成员 12345678910111213141516#ifndef GROUPUSER_H#define...