自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 收藏
  • 关注

原创 流水线及流水线冒险

流水线技术的关键在于通过将指令执行分解为多个阶段,使多条指令在不同的阶段上同时执行,以提高处理器的并行处理能力。这样,尽管单条指令的执行时间不变,但整个处理过程的吞吐量得到了提升。流水线的基本阶段:在计算机处理器设计中,流水线技术通过将指令执行过程分解为多个阶段,使多条指令能够并行处理,从而提高处理器的吞吐量和效率。基于MIPS架构的指令集(, , , , , , , ),我们可以将指令的执行过程划分为以下五个基本阶段:下面详细讲解每个阶段及其在不同指令中的具体操作,并展示这些指令在流水线中的执行过程。1.

2024-11-09 19:42:36 1152

原创 我的创作纪念日

????????????????????????????????????????

2024-04-15 08:43:28 401

原创 Wireshark_labs TCP

在本实验中,我们将详细研究著名的TCP协议的行为。我们将通过从您的电脑向远程服务器传输一份150KB 的文件(一份Lewis Carrol 的“爱丽丝梦游仙境”文本), 并分析TCP传输内容的发送和接收过程来实现。我们将研究TCP对序列和确认号的使用,以提供可靠的数据传输;我们将看到TCP的拥塞控制算法-慢后动和拥塞避免在过程中,我们将看看TCP的接收器发送流量控制的机制。我们还将简要地观察TCP连线的设置,我们还会研究计算机和服务器之间TCP连线的性能(吞吐量和往返时间)。

2024-03-06 17:11:06 1446

原创 2024.2.8

以后我不会再写这个博客了。感觉没用,给自己找自我安慰。可能还会更一更自己的代码或者其他作业。

2024-02-08 15:23:29 465

原创 计算机自顶向下 Wireshark labs——DNS

如本文第2.4节所述,域名系统(DNS)将主机名转换为IP地址,在互联网基础设施中发挥着关键作用。在本实验中,我们将仔细研究DNS的客户端。回想一下,客户端在DNS中的角色相对简单—客户端向其本地DNS服务器发送查询,并收到响应。如教科书中的图2.19和图2.20所示,很多事情可以“隐藏”进行,对DNS客户端是不可见的,因为分层DNS服务器相互通信,以递归或迭代地解析客户端的DNS查询。然而,从DNS客户机的角度来看,该协议非常简单——向本地DNS服务器制定查询,然后从该服务器接收响应。

2024-02-04 15:06:53 2142

原创 计算机网络自顶向下Wireshark labs-HTTP

我直接翻译并在题目下面直接下我的答案了。

2024-02-02 23:26:53 1941

原创 计网——应用层

HTTP,或超文本传输协议,是Web上使用的主要应用层协议。它基于客户端/服务器模型工作,涉及Web浏览器(客户端)和Web服务器之间的交互。客户端角色首先客服端(通常是Web浏览器)启动通信过程。用户输入URL或点击链接,浏览器将这些动作转换为HTTP请求。HTTP使用TCP协议来保证数据传输的可靠性,并向服务器的特定端口发起连接。建立连接后,浏览器将HTTP请求发送到服务器。

2024-02-01 22:54:38 1515

原创 计算机网络自顶向下Wireshark labs1-Intro

加深对网络协议的理解通常可以通过观察协议的运行和不断调试协议来大大加深,具体而言,就是观察两个协议实体之间交换的报文序列,深入了解协议操作的细节,执行某些动作,然后观察这些动作产生的结果。这可以在仿真环境中或在诸如因特网的真实网络环境中完成。您将在本课程中进行这些Wireshark实验,您将使用自己的电脑在不同的场景下运行各种网络应用程序(如果您无法h获得计算机,或无法安装/运行Wireshark,您可以借用朋友的电脑)。您将观察您的计算机中网络协议与Internet其他主机的协议实体进行交换消息的动作。

2024-01-22 11:52:14 1226

原创 解决git在使用代理时进行HTTPS操作时的无法连接github的解决办法

这条命令是在配置 Git 使用代理服务器进行 HTTPS 连接。具体来说,它设置了 Git 在进行 HTTPS 操作时(如 clone, fetch, pull 或 push 到使用 HTTPS 的远程仓库)应该使用的代理服务器地址和端口。执行这条命令后,Git 将通过本地的 7890 端口上运行的代理服务来处理所有的 HTTPS 请求。在使用git clone 无法连接github的443端口。

2024-01-21 12:32:34 1212

原创 解决ssh: connect to host github.com port 22: Connection refused

是连接github.com的端口号22拒绝连接。可以使用github的443端口。

2024-01-13 22:38:18 3404 1

原创 力扣44题通配符匹配题解

给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持和'*''*'判定匹配成功的充要条件是:字符模式必须能够输入字符串(而不是部分匹配)。p'*'

2023-12-09 17:00:25 319

原创 力扣贪心题解 跳跃游戏

给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。

2023-12-08 17:39:09 321

原创 if constexpr

是C++17中引入的一个新特性,它在模板编程中尤其有用。这个特性使得根据模板参数在编译时选择不同的代码路径成为可能。让我们逐步了解它的工作原理和应用场景。

2023-11-24 19:22:25 895

原创 constexpt

是C++11引入的新的关键字,它用于在编译时而非运行时计算函数或变量的值。这个特性对于提高程序效率和优化代非常有用。编译时常量(Compile-time Constants)和运行时常量(Runtime Constants)是指常量在程序执行过程中被确定的时间点不同。编译时常量是指其值在程序编译阶段就已经确定并嵌入到代码中的常量。它们通常是直接赋值的,或者通过在编译时可解析的表达式计算得到。特点:由于它们的值在编译时就已确定,因此运行时无需再计算,这可以提升程序运行效率。编译时常量通常直接存储在程序的只读数

2023-11-23 22:14:29 326

原创 字符串取出多余空格的三种方法

如果使用双指针去移除空格,最后resize一下字符串的大小,就可以做到时间复杂度为O(n)这个题的难点是去除多余的空格,下面我将详细讲解一下去除多余空格的几种方法。但是erase操作上套了一个for循环,所以时间复杂度为O(n。双指针的实现过程需要纸上手写画一下,实现过程也相对简单。第一种方法是逐个字符的去遍历,遇到多余空格就删除。这个算法思路很简单,遇到空格就erase。,逻辑是一样的只不过是去除空格。

2023-11-10 09:52:01 1558

原创 单向循环代码实现cpp

【代码】单向循环代码实现cpp。

2023-11-09 20:55:59 186

原创 数组代码实现cpp

【代码】数组代码实现cpp。

2023-11-09 20:29:38 151

原创 数组奇偶数调整问题——双指针

【代码】数组奇偶数调整问题——双指针。

2023-11-09 20:08:10 277

原创 可调用对象的绑定器和包装器

在C++中,可调用对象是一个广泛的概念,涵盖了任何可以通过函数调用运算符()调用的实体。这些对象不仅包括普通函数和类的成员函数,还包括对象,这些对象可以像函数一样调用。

2023-11-03 17:22:47 156

原创 C++11线程

创建线程需要包含头文件<thread>,使用线程类。

2023-10-31 13:34:00 172

原创 noexcept

运算符通常与模板和通用编程一起使用,使得函数或类模板可以基于其模板参数的异常保证来调整其行为。这是一种在编译时进行异常安全性检查的方法。是 C++11 引入的一个关键字,它用于指定一个函数是否会抛出异常。具体地说,如果你知道一个函数不会或不应该抛出任何异常,你可以使用。运算符用于在编译时检查表达式是否可能抛出异常。它返回一个布尔值,如果表达式保证不抛出异常,它返回。是否可能抛出异常,并根据结果选择不同的行为。来在编译时检查传递给它的函数。

2023-10-25 16:43:25 197 1

原创 lambda函数

lambda函数是C++11中新增的非常有用的特性,它允许你在需要函数对象的地方,如for_eachsort等算法,直接定义一个匿名函数。Lambda函数简洁、高效,也为编写现代C++代码提供了更多的便利。

2023-10-25 16:30:16 258

原创 委托构造和继承构造

在实际开发中,为了满足不同的需求,避免代码冗余,c++11引入了一个新的构造函数——委托构造。它允许一个构造函数委托给类中另一个构造函数来进行实际的构造过工作。这样的特性主要是为了减少多个构造函数中重复代码,从而提高代码的可维护性。委托构造不好进行文字讲解。

2023-10-24 21:38:32 138

原创 cpp断言

Cpp中的断言是一种调试工具,用于开发过程中的假设。其主要目的是捕获程序中的逻辑错误。当某个条件为false时,断言会触发一个运行时的错误,从而使开发者能够及时地知道并处理这个错误。使用断言需要包括头文件<cassert>或<assert.h>这两个头文件都提供了一个才参数的宏,用于运行时进行断言。这里的expression是一个bool表达式,如果值为真,则断言不会有任何效果,程序会继续正常运行。但是如果他的值为假,则断言会生成一个错误信息,并使程序终止。

2023-10-24 21:07:52 368

原创 智能指针

unique_ptr。

2023-10-22 13:35:36 204

原创 时间操作chrono库

类模板表示的,它表示两个事件之间的时间差。这个模板包含两个参数:一个是代表时间的数值类型(Rep),另一个是一个比率类型(Period),表示每个时间单位代表的秒数的分数。已经定义了一些常见的duration类型,用于表示常用的时间单位,如小时、分钟、秒等。在许多情况下,开发人员需要测量特定操作的执行时间,例如性能测试、基准测试或简单的时间追踪。这个模板类在内部使用Rep类型的变量来存储时间长度,并使用Period来解释这个值代表的时间单位。结构体的指针,它包含了本地时间(考虑了时区的时间)。

2023-10-19 19:29:13 357

原创 C++11常用新特性——可变参数模板

可变参数模板使用一个名为"parameter pack"的概念来表示任意数量的参数。C++11中,可变参数模板是一个非常强大的特性,它允许函数和类模板接受任意数量和类型的参数,这为类型的安全编程提供了更广泛的灵活性。C++中没有直接展开参数包的内建方式,但你可以通过递归模板函数或基于逗号表达式的技巧来实现。可变参数模板允许你传递多个类型和数量不定的参数给一个函数或类。可变参数模板的一个常见用途是构建灵活的元组或类似元组的结构。这样的C风格技术来处理不定数量的参数,这些方法通常类型不安全且难以管理。

2023-10-19 19:28:27 349

原创 C++11常用新特性——完美转发

在早期的 C++ 中,当你通过一个函数向另一个函数传递参数时,参数的左值/右值属性会丢失,这意味着即使有可用的移动构造函数,编译器也只能调用拷贝构造函数。为了解决这个问题,C++11 引入了新的工具和概念:右值引用和移动语义,所以,能否实现完美转发,决定了该参数在传递过程使用的是拷贝语义还是移动语义。是通过模板推断得来的,那么这个参数就不是一个普通的右值引用,而是所谓的“通用引用”或“转发引用”。的参数是一个右值引用,它就会返回一个类似的右值引用,如果传递的是左值引用,它就返回一个左值引用。

2023-10-19 19:27:35 174

原创 C++11常用新特性—— 移动语义

*移动语义的主要目标是避免不必要的对象复制,特别是那些拥有动态分配的资源(如堆内存)的对象。**之前在C++98/03中,我们仅仅有拷贝构造和拷贝赋值,这意味着任何时候对象被复制或赋值时,其资源都会被复制,这很可能导致效率问题。在资源被移动之后,源对象仍然处于一个有效的状态,但其具体内容是未定义的。从 C++11 开始,标准库中的许多容器和算法都被优化以利用移动语义,特别是那些涉及到对象传递的操作。)或不含动态分配资源的小对象,拷贝的代价很小,移动构造并不会带来太多优势,有时甚至可能是多余的。

2023-10-19 19:26:50 175

原创 C++11常用新特性——右值引用&&

左值引用, 使用 T&, 只能绑定左值。右值引用, 使用 T&&, 只能绑定右值。已命名的右值引用是左值。常量左值,使用 const T&, 既可以绑定左值又可以绑定右值。

2023-10-19 19:26:01 246

原创 C++11常用新特性——decltype

在C++中,用于查询表达式的数据类型的操作符,该操作不是实际执行该表达式。可以与尾随返回类型结合使用,以便推断函数的返回类型。这特别适用于模板函数,因为我们可能不总是知道参数的具体类型和它们之间的操作结果。在泛型编程中,尤其是设计到复杂的操作和多种类型时,确定返回值的类型可能会变得非常复杂。但是,从C++14开始,编译器得到了加强,可以自动推断函数的返回类型,而无需使用。关键字允许对变量的类型进行自动推导,它主要是基于变量的初始化表达式来工作的。评估表达式的类型,但不实际计算表达式的值。

2023-10-19 19:25:08 205 1

原创 C++11常用新特性——自动推导类型auto

在C++中,用于查询表达式的数据类型的操作符,该操作不是实际执行该表达式。现在成了一个类型的占位符,它告诉编译器查看变量的初始化器表达式,并使用该表达式的类型来确定变量的类型。这对于避免编写冗长的类型名称,特别是涉及模板的类型名称,非常有用。表示的就是"半个"类型,而不是完整的类型,从而使得类型推导更灵活。关键字允许对变量的类型进行自动推导,它主要是基于变量的初始化表达式来工作的。关键字用于指定变量的存储期,但在C++11中,它的功能被改为类型推导。评估表达式的类型,但不实际计算表达式的值。

2023-10-19 19:24:06 584

原创 cpp文件操作

当你在处理文件时,经常需要控制文件的读写位置或查询其大小。C++提供了一组非常强大的工具来实现这一目的,下面将详细介绍这些功能及其用法。

2023-10-11 21:51:51 1640

原创 STL算法

STL算法由头文件<numeric>和组成的。其中****:这是STL中最大的头文件,包括了各种常用算法,如:比较,交换,查找,遍历,复制,修改,排序等相关操作。<numeric>这个头文件相对较小,他主要包括了序列上进行数学运算法的模板函数。如:累积,内积,部分和,相邻差异等。这个头文件定义了一些模板类,用于声明函数对象(也称为仿函数)。这些函数对象经常用于STL算法中,特别是那些需要自定义比较或操作的算法。如:比较,逻辑操作等。

2023-10-08 17:35:30 147

原创 STL容器

C++ STLSTL实现原理及其实现STL(Standard Template Library,标准模板库),提供了六大组件,可以相互之间组合套用,这六大组件分别是:容器(Containers),算法(Algorithms),迭代器(Iterators),仿函数(Functors),适配器(Adaptors),空间配置器(Allocator)。STL六大组件的交互关系:容器通过空间配置器取得数据存储空间。算法通过迭代器访问和处理容器中的内容。仿函数可以协助算法完成不同的策略变化。仿函数类似函数

2023-10-01 13:18:30 246

原创 Cpp异常概述

创建异常类自定义异常通常通过继承标准的exception类来创建。覆盖what()方法,返回描述异常的字符串。抛出自定义异常使用throw关键字,如同使用内置异常一样。捕获自定义异常使用try/catch块捕获自定义异常,与捕获内置异常相同。// 1. 创建自定义异常类public:// 2. 抛出自定义异常try {catch (const DivideByZeroException& e) { // 3. 捕获自定义异常return 0;

2023-08-17 16:04:37 412 1

原创 预处理,编译,命名空间,类型转换

define用于宏定义,宏定义可以在源文件中定义常量或函数。宏定义在预处理阶段被替换。FILEFUNCTIONLINEDATETIMETIMESTAMP当用C++编译程序时,宏__cplusplus就会被定义。如果一个宏没有参数,那么它的定义形式是#define 宏名 宏内容。如果一个宏有参数,那么它的定义形式是(x) : (y))。头文件(*.h或*.hpp):这些文件主要包含函数、结构体、类和模板的声明。此外,它们也包括#include预处理器指令(用于引入其他头文件)、#define。

2023-07-31 17:13:26 283 1

原创 C++类模板

类模板允许我们创建一个可以在工作在多种类型上的类,比如数组,链表,队列,栈等等。其工作原理就是用占位符代替实际的类型,当我们使用这个类模板时,再指定具体的类型。函数模板建议用typename描述通用数据类型,类模板建议用class。上述类模板例子中,MyArray类可以用于创建各种类型的数组。包括, 甚至是等。**需要注意的是,在创建模板类的实例时,我们必须指定模板参数。**例如,我们需要创建一个存储整数的MyArray,我们可以这样写。这里,模板参数时int,表示我们创建的MyArray将存储int。

2023-07-23 11:40:24 5139

原创 C++函数模板随笔总结

auto关键字是C++11中的用法。在C++11之前,auto被用作声明自动存储局部变量。最基本的,在C++11中,我们可以使用auto编译器会根据初始化的值自动推导变量的类型。autoautoautoauto然而,autoautoautoauto例如,假设我们有一个很长的类型,如,使用auto。

2023-07-13 00:43:37 140

原创 继承和派生 练习

【代码】继承和派生 练习。

2023-07-11 11:26:33 96

小兔鲜儿 项目实现HTML+CSS

小兔鲜儿 项目实现HTML+CSS

2023-04-30

大神总结的算法C语言版,非常适合基础学

大神总结的算法C语言版,非常适合基础学

2022-11-23

空空如也

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

TA关注的人

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