![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 88
Hanani_Jia
这个作者很懒,什么都没留下…
展开
-
const用法总结
最近开始对C++的学习。学习开始的时候就接触到了一个词const,虽然自己在C语言的时候也了解过这个关键字,但是自己对这个关键字的理解并不是很深刻,在学习C++的引用的时候这个词又重新出现了,今天就给大家介绍一下这个关键字。 这个关键字最主要的用法就是只读性,也就是说如果你的某个变量被这个关键字所修饰,你的这个变量就会变成一个只读的属性,通常我们会在进行函数传参的时候进行使用,当你不想让你的...原创 2018-06-02 22:36:08 · 843 阅读 · 1 评论 -
C++ 服务器 五 TCP详解二
今天我们继续介绍C++服务器的第五部分。 我们继续讲TCP是如何来保证他的传输的可靠的,有链接的呢?为了做到这些呢工程师们实际上是吧每台机器的TCP做成了一个状态,那么TCP有哪些状态? 这里我们简单列举了一些TCP的状态。 首先最开始的,比如机器刚启动我们要和另一台机器创建TCP链接,那么他最开始的状态就是我们最下边的状态CLOSED,实际上他是一个不存在的状态,他是什...原创 2018-08-06 17:27:47 · 814 阅读 · 0 评论 -
C++ 服务器 八 TCP的一些缺点思考
之前分享了一些关于TCP的知识,今天我们就对这些知识做出一些自己的思考。第一个问题是:TCP的头部为什么先放的是端口信息。这是我们之前讲过的TCP的头部箭头所指向地方就是我们的端口信息,一个是发送信息的端口,一个是接受信息的端口。 实际上是这样的,当TCP的消息到达要处理的计算机的时候,他会根据自己的端口信息来判断有没有应用程序来接受这个信息,当读取到端口信息还没有人来读取你...原创 2018-08-10 22:08:31 · 594 阅读 · 0 评论 -
C++ 服务器 六 TCP详解三
上次我们主要讲解了TCP在过程中的几种状态,以及TCP在链接时的三次握手的过程。 下面给大家介绍一下TCP在断开连接的过程我们俗称为四次握手。 通过图就可以看出TCP的断开比链接还要多一次握手环节。因为我们之前说过断开我们既可以从服务器断开,也可以从客户端断开。所以图中并没有说什么左边是客户端右边是服务器。我们这里假设左边是客户端,最早的时候客户端的状态是ESTABL...原创 2018-08-07 12:50:14 · 727 阅读 · 0 评论 -
C++ 服务器 三 IP详解二
今天继续给大家分享C++服务器中的ip协议。 IP协议有两个很大的特点:第一个是不可靠的,意思就是说,它并不能保证数据包成功的到达目的地。也就是说a计算机发送了一个数据包发送到了b计算机,但是ip协议本身并不能保证数据包一定能够到达,ip所能提供的是最好的传输服务,如果在传输过程中发生了某种错误,例如传输过程中有一个路由器内存用完了,这种会出现什么情况在ip层面会有一个很简单暴力的解决方...原创 2018-08-03 10:32:52 · 1049 阅读 · 0 评论 -
C++中Vector 基本介绍
在C++的学习中大家肯定都遇到过vector,之前学习的时候并没有在意,但是在牛客网刷题的时候发现大部分题中都用到了vector,但是自己并不会很好的使用所以今天就主要的来给大家分享一下vector是什么是怎么使用的。 一、向量的介绍 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Sta...原创 2018-08-08 21:02:01 · 2139 阅读 · 3 评论 -
C++ 服务器 九 伯克利socket(一)
之前我们讲解了TCP,和IP这两部分的内容其实还是很多的,我们只是讲了一部分跟我们开发服务器相关的一部分内容,他还有很多的细节。 我们主要形成个概念:就是我们的IP是无连接的不可靠的,但是TCP是形成于IP无连接和不可靠的基础上所形成的的可靠的有链接的一种形式。 今天我们讲的是socket的API,虽然我们最终服务器开发是调用封装好的,但是我们还是要做一定的了解,socket这个名...原创 2018-08-13 19:39:11 · 944 阅读 · 0 评论 -
剑指offer之二维数组中的查找
之前写过一些剑指offer的题目,但是遇到vector的时候都会跳过因为并不清楚vector容器到底是个什么,前几天在对vector进行简单的了解之后,理解不是很深刻,但是可以使用vector来做题了。题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含...原创 2018-08-13 20:40:00 · 300 阅读 · 0 评论 -
剑指offer--统计一个数字在排序数组中出现的次数
题目描述统计一个数字在排序数组中出现的次数。class Solution {public:int GetNumberOfK(vector<int> data, int k) {int length = data.size();//求数组长度int i = 0;int count = 0;while (i < length){if (dat...原创 2018-08-19 16:10:09 · 1063 阅读 · 1 评论 -
new和malloc的区别
最近在复习C++ 的时候看到了这个问题,然后在网上查阅了一些资料,发现这个问题还是个十分易考的面试题,这里就给大家总结了一下,这两套东西到底是有什么区别。 首先要明白的是我们的new是运算符,他并不是一个函数,delete也是,而我们的malloc是库函数,他们都可以用来申请内存和释放内存,从表面看来既然都是一样的,那为啥C++里边要再弄一个new而不是直接用以前C中的malloc,是因...原创 2018-09-05 19:49:34 · 457 阅读 · 0 评论 -
剑指offer--不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。因为需要求两个数的和但是又不能使用加减乘除运算符号,自然我就想到了位运算。位运算主要有两种一种是逻辑运算符另一种是移位运算符。逻辑运算符主要有:&按位与、|按位或、~按位取反,^异或。移位运算符有>>右移一位、<<左移一位。&按位与:两个数对应位都为1则为1,有...原创 2018-08-14 09:32:49 · 344 阅读 · 0 评论 -
C++服务器 (二) IP详解一
今天我给大家讲解的是C++服务器的第一小节,首先给大家介绍的是一些网络的基础知识,重点讲一下我们常说的ip是什么。 这些知识点大家网上也都是可以搜到,如果有我介绍的不详细的部分大家可以通过百度来搜索。 首先internet大家都知道是起源于美国,因为当时二战的缘故导致计算机和网络十分快速的发展,早在1992年时internet上的主机就已经超过了一百万台,现在网络更是已经成为我们生...原创 2018-07-31 23:25:56 · 3304 阅读 · 0 评论 -
C++ 服务器 七 wireshark抓包
之前我们分成了三部分对TCP进行了详细的讲解今天我们就使用一个工具来查看一下TCP的连接和断开的情况。 首先我们看一下,在实际应用中TCP都使用到了那些TIMER(定时器)。实际上他用到了四种定时器。分别是:重传定时器,坚持定时器,保活定时器,2MSL定时器(主要是用来处理TIME-WAIT问题)2MSL的意思是两倍的最大生存时间。 我们从重传定时器说起,重传定时器是比较好理解...原创 2018-08-09 17:37:00 · 1241 阅读 · 0 评论 -
C++类和面向对象
相信大家在学习C++的时候听的最多的一句话就是面向对象。包括我们的课本名字都是面向对象的C++编程。但是大家真的明白什么是面向对象的编程吗?到底什么才是面向对象的编程。同样这是一个十分抽象的概念,所以很多人自始至终也解释不清楚到底怎么样才是面向对象。说到面向对象具体是个什么还是需要让他和面向过程对比着说。 比如我们之前所说的面向过程,简单的来说他的编程就是看着你是如何操作的,他的操作和他所代表的...原创 2018-06-29 15:43:41 · 288 阅读 · 0 评论 -
C++函数重载
最近,开始接触C++,今天再简单介绍一下C++的一些特点今天要介绍的重点是C++的重载。 首先介绍一下大家遇到的问题,假如我现在需要我现在需要交换两个变量的值,我需要做的是通过一个函数来实现,那基本思路就是将需要交换的数据当做变量传入我们的函数,然后在函数内完成交换。void swap(int *a, int *b); 我们就需要通过这个函数来实现函数的名字叫做swap,这里我们实现的...原创 2018-06-10 22:54:46 · 586 阅读 · 0 评论 -
C++日期计算器(日期类)
#include<iostream>using namespace std;class date{ public: date(int year=1990,int month=1,int day=1) :_year(year) ,_month(month) ,_day(day) { if(...原创 2018-06-30 10:36:05 · 3172 阅读 · 0 评论 -
C++缺省参数和命名空间
今天再介绍一下C++的一些特点,今天要介绍的是C++的缺省参数和命名空间两个特点,首先介绍一下什么是缺省(sheng)参数,所谓缺省参数,顾名思义,就是在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用该默认值,你就无须指定该参数。缺省参数使用主要规则:调用时你只能从最后一个参数开始进行省略,换句话说,如果你要省略一个参数,你必须省略它后面所有的参数,即:带缺省值的参数必...原创 2018-06-25 20:30:17 · 788 阅读 · 0 评论 -
const函数和inline内联
const并不陌生了 https://blog.csdn.net/hanani_jia/article/details/80552219之前就对const有了一个简单的总结,不过都是用来修饰成员变量的,今天,我们要写的是关于成员函数的。 首先介绍的是这个const最特殊的一点,就是他是写在哪的,在他修饰变量的时候,是在写某个变量的前边,但是在修饰函数的时候却写在函数的后边,看起来很怪。 这是我...原创 2018-07-01 09:10:47 · 2783 阅读 · 0 评论 -
C++友元 friend
今天给大家介绍的是C++中的友元。之前介绍过const,友元的关键字是friend。但是friend和const还是有一些区别,因为友元这里不仅仅可以用来修饰函数,友元还可以是一个类。这里说一下友元到底是什么,友元的友就可以大概看出来这个关键字的具体作用,大家都知道我们在定义类的时候会有public和private,通常我们的函数是public公有的,但是我们的成员都是私有的。当友元形容一个类的...原创 2018-07-02 23:22:14 · 636 阅读 · 0 评论 -
C++的引用
今天给大家介绍的是C++中的另外一个新东西---引用。 首先大致的介绍一下引用,引用是C语言中没有的一个概念,但是他的模样却不陌生。之前在介绍const用法的时候简单的说过引用,&,这是引用的符号,他和C语言中的取地址符是一模一样的,这样导致很多人刚接触的时候不知道到底是代表着什么。引用实际上就是给你的变量起的一个别名。这也很好理解,比如我们学校叫做西安工业大学,当地人都叫西工院,西...原创 2018-06-27 20:46:16 · 584 阅读 · 0 评论 -
C++ 服务器 四 TCP详解一
上次给大家介绍了IP协议,以及IP协议的两个特点:无连接和不可靠,之前既然介绍了TCP/IP协议,那今天咱们就讲一下TCP是什么他和IP有什么关系,TCP实际上是建立在IP协议不可靠无连接的基础上的一个可靠的协议。现在主流服务器都是采用的TCP协议。 首先,TCP是如何利用IP来创建自己可靠的链接呢,第一,TCP先将要传输的应用数据分割成合适的数据块,每当TCP传输数据的时候他都会建立一...原创 2018-08-04 17:27:53 · 1512 阅读 · 0 评论 -
C++服务器 (一) 服务器概述
最近从学长那里拿到了一些C++服务器的学习视频,通过看视频之后简单的对自己看过的视频进行一个小总结。 首先,简单介绍一下,现在很多语言都可以用来进行服务器编程,例如:python、java、ruby等等,但是我们这里用的是C++,为什么要用C++来编写,这里最重要的就是效率。效率可以从两方面来看,一个是运行效率一个是开发效率,运行效率就不用多说,除了汇编语言外,运行效率最高的就是C语言和...原创 2018-07-31 10:50:42 · 19519 阅读 · 38 评论 -
C++ 服务器 十一 服务器开发的shell命令 二
再介绍一个命令就是我们的top命令top的作用类似于我们在windows下的任务管理器不过没有windows中的那么花哨,并且top指令查询出来的内容也是实时发生变化的。第一部分也就是亮白线上边的部分,显示了我的计算机开启了23分钟,有两个用户,后边的load average有三个数字第一个数字是最近一分钟的系统负载,最近五分钟的系统负载,还有最近十五分钟的系统负载,所以我们在跑程序的...原创 2018-09-10 10:07:23 · 425 阅读 · 3 评论