自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 c++开发之编译curl(windows版本)

在 Windows 上编译支持 OpenSSL 的 cURL 库并不简单,因为涉及到多个库的依赖关系以及工具链的配置。

2024-09-27 23:07:19 568

原创 c++开发之网络篇curl

libcurl是一个功能强大的库,常用于在 C 和 C++ 程序中执行 HTTP 请求、处理 URL 资源。下面是关于如何在 C++ 中使用libcurl的详细指南,以及一个基础的示例代码。

2024-09-26 21:17:46 877

原创 c++开发进阶之内存差异

内存对齐是为了提高CPU的内存访问效率。编译器会自动进行内存对齐,但可以使用alignasalignof等方式手动控制。理解内存对齐和填充对编写高效的C++代码非常重要,特别是在设计复杂的数据结构时。

2024-09-25 09:42:58 850

原创 c++开发实战之嵌入式

C++在嵌入式开发中的应用带来了面向对象编程的优势,增强了代码的模块化和可维护性。然而,由于嵌入式系统的资源限制,使用C++时需要谨慎,尽量避免复杂的特性,如异常处理、RTTI和动态内存分配等。同时,通过合理使用C++的模板、命名空间和内联函数,可以在保持高效的基础上提升代码的可读性和可维护性。C++的使用在嵌入式开发中有着巨大的潜力,只要适当优化和配置,它能够在保证系统性能的同时提升代码质量。

2024-09-25 09:23:36 760

原创 c++开发进阶之大小端问题

高位字节存储在低地址,低位字节存储在高地址。

2024-09-24 23:39:05 914

原创 c++开发实战之栈溢出

栈溢出通常由递归过深、局部变量占用过多或无限递归引发。为避免栈溢出,可以优化递归算法、使用堆代替栈、减少局部变量的大小以及增加合理的终止条件。通过合理设计程序结构和优化算法,可以有效避免栈溢出的风险。

2024-09-23 23:30:19 1279

原创 c++开发实战之网络编程(四 服务端多线程)

selectpoll和epoll都可以与pthread结合使用,以实现高并发的网络服务器。通过为每个连接创建一个新的线程,处理与客户端的交互逻辑。使用使线程自动释放资源,无需主线程显式调用。selectpoll和epoll的选择可以基于应用场景的需求,epoll通常在处理大量连接时性能最佳。

2024-09-22 00:00:00 460

原创 c++开发实战之网络编程(三 N个终端)

select:适合少量文件描述符,兼容性好,但性能有限。poll:相比select有一定改进,没有文件描述符限制,但性能仍会随文件描述符数量增加而下降。epoll:Linux 平台上高效的多路复用机制,适合处理大量连接。

2024-09-21 00:30:00 695

原创 c++开发实战之网络编程(二 TCP/IP协议)

在C++中使用TCP/IP协议,通常通过操作系统提供的套接字(Socket)接口来实现。套接字是一种用于网络通信的编程接口,它支持通过TCP/IP协议进行通信。在Linux上,通常使用BSD套接字API,而在Windows上,使用的是WinSock API。以下是C++中实现TCP/IP协议的步骤详解,并以客户端和服务器代码为例说明。

2024-09-21 00:00:00 488

原创 c++开发实战之网络编程(一)

C++ 网络编程可以使用多种库和技术,可以使用标准的 Berkeley Sockets API 来编写跨平台的 C++ 网络编程代码。通过使用不同的系统头文件和函数,我们可以实现一个 Linux 和 Windows 兼容的客户端和服务器。以下示例展示了如何使用在 Linux 和 Windows 上实现 TCP 通信。在 Windows 上,你需要使用Winsock2,而在 Linux 上使用标准的 POSIX Sockets API。

2024-09-20 00:07:15 927

原创 c++开发进阶之广度优先搜索(BFS)

BFS 是一种非常重要的图遍历算法,适用于寻找无权图的最短路径、层次遍历等应用。通过队列的机制,它能够高效地按层次逐步遍历图中的所有节点,是解决多种问题的基础算法之一。

2024-09-20 00:06:58 749

原创 c++开发进阶深度优先搜索(DFS)

DFS 是一种强大的遍历算法,广泛应用于图和树的遍历中。通过递归或栈的方式,它能够高效地遍历整个图,同时也为许多复杂问题提供了基础。DFS 算法通常是图论中很多高级算法的基础。

2024-09-19 21:38:38 565

原创 c++设计模式

提供一个创建一系列相关或依赖对象的接口,而无需指定它们的具体类。

2024-09-19 21:34:32 1351

原创 C++开发必备之stl进阶(八 unordered_map)

假设我们有一个自定义类型作为键,需要自定义哈希函数。int x;int y;// 自定义哈希函数return 0;如果需要不同的键比较逻辑,可以通过提供自定义比较函数来实现。然而,对于,键比较函数需要用于处理哈希冲突时键的相等性判断,通常不需要修改,除非有特殊需求。当使用自定义类型作为键时,需要自定义哈希函数和键比较函数。// 自定义键类型int age;// 自定义哈希函数return 0;有时需要对数据进行分区或分组,可以结合使用和算法。

2024-09-18 14:51:06 791

原创 C++开发必备之stl进阶(七 队列)

是标准模板库(STL)中的容器适配器,遵循**先进先出(FIFO,First In First Out)**的原则。是 C++ 标准模板库中的容器适配器,旨在实现先进先出(FIFO,First In First Out)的队列数据结构。返回队列头部元素的引用(不删除该元素),可以通过它来访问或修改头部的元素。本身并不是一个独立的容器,它是一种容器适配器,基于底层容器来实现其功能。)包装成队列的形式,提供了头部出队、尾部入队的接口。相似,但它返回的是队列中的最后一个元素。返回队列尾部元素的引用,和。

2024-09-18 14:50:54 251

原创 C++开发必备之stl进阶(六 栈)

是标准模板库(STL)中的容器适配器,遵循**后进先出(LIFO,Last In First Out)**的原则。是一个容器适配器,它限制了底层容器的操作,仅提供对栈的基本操作接口。移除栈顶元素,注意此操作并不会返回被移除的元素,若需要访问栈顶元素可以先调用。我们可以使用栈将整数中的每一位压入栈中,然后按顺序弹出,以实现整数反转。本质上是一个容器适配器,它封装了一个底层容器,默认情况下底层容器是。返回栈顶元素的引用(不删除),可以通过它来访问或修改栈顶的元素。的一个完整示例,它展示了栈的基本操作。

2024-09-18 14:50:42 261

原创 C++开发必备之stl进阶(五 优先队列)

可以通过自定义比较函数来定义复杂类型的优先级队列。例如,假设我们有一个。

2024-09-18 14:50:26 300

原创 C++开发必备之stl进阶(四deque)

(双端队列,Double-ended Queue)是 C++ 标准模板库(STL)中的一种序列容器,允许在两端(前端和后端)高效地插入和删除元素。支持在容器的头部和尾部同时进行高效的插入和删除操作,而。在头部插入元素时效率较低,因为它需要移动所有元素。提供了多种操作来支持在头部和尾部插入和删除元素。提供了一些方法来检查容器的大小、是否为空等。支持迭代器,可以使用标准的迭代器操作来遍历。也支持常数时间的随机访问,使用下标运算符。允许在任意位置插入或删除元素,使用。来访问特定位置的元素。

2024-09-18 01:00:00 748

原创 C++开发必备之stl进阶(三高级操作)

std::set// 按绝对值降序排序});// 输出: 5 4 3 2 1return 0;示例:使用 Lambda 表达式查找特定元素// 查找第一个大于 3 的元素});if (it!// 输出: 4return 0;

2024-09-18 00:15:00 1998

原创 C++开发必备之stl(二迭代器)

等)提供了一种统一的遍历机制。迭代器类似于指针,可以用来指向容器中的元素,并通过递增或递减操作来遍历容器。迭代器是一个可以指向容器中元素的对象,类似于指针。它可以被用于遍历容器的元素,而无需关心容器的底层实现。迭代器失效通常发生在容器结构改变时,比如删除、插入操作。C++ 迭代器(Iterator)是标准模板库(STL)中的重要概念,它为容器(如。)只能读取容器中的元素,不能修改元素的值。返回指向“末尾”之后位置的迭代器。迭代器通常通过 STL 容器的。返回指向第一个元素的迭代器,

2024-09-17 12:37:09 600

原创 C++开发必备之stl(一概述)

C++ STL(Standard Template Library,标准模板库)是C++中一个强大且广泛使用的库,包含了大量可复用的模板类和函数。这些工具为程序员提供了非常高效的容器、算法和迭代器,能够帮助开发者快速完成各种常见的编程任务。容器(Containers)算法(Algorithms)迭代器(Iterators)

2024-09-17 12:29:56 837

原创 c++面试八股文(大公司通用)

在C++面试中,常见的问题通常会围绕C++的基础知识、数据结构与算法、系统设计、编程技巧、以及实际应用中的场景。以下是华为C++面试中常见的“八股文”问题及其简要回答思路。C++中的用法有哪些? 回答:C++中构造函数和析构函数的执行顺序? 回答:C++中指针的作用是什么? 回答:C++中的深拷贝与浅拷贝区别? 回答:C++的多态性是如何实现的? 回答:什么是虚析构函数,为什么需要它? 回答:接口类和抽象类的区别是什么? 回答:C++中内存分配方式有哪些? 回答:智能指针的作用和类型? 回答:C++中的RA

2024-09-13 17:27:05 1485

原创 零基础用python开发区块链(四ABI详解)

在以太坊中,是智能合约与外部世界(如 Web3 应用或 DApp)进行交互的接口。它定义了智能合约的函数、事件、数据结构的编码规则,并且通过 ABI,你可以从外部调用合约的函数,或监听合约事件。一个智能合约的 ABI 通常是一个 JSON 文件,包含了合约中所有可调用的函数、可监听的事件及其参数的描述。了解 ABI 对于与智能合约交互非常重要,下面详细解释 ABI 的各个部分。

2024-09-10 03:00:00 707

原创 零基础用python开发区块链(五web3进阶)

web3.py是一个功能强大的 Python 库,用于与以太坊区块链进行交互。它提供了一系列功能,使得开发者可以轻松地与以太坊网络进行交易、查询数据、调用智能合约、管理账户、监听事件等。下面是web3.py。

2024-09-09 23:20:01 1119

原创 零基础用python开发区块链(三web3.py)

web3.py是一个 Python 库,用于与以太坊区块链进行交互。它支持以太坊的各种功能,例如查询区块、发送交易、调用智能合约、与钱包交互等。web3.py是基于 JavaScript 库web3.js的 Python 版本,广泛应用于构建以太坊 DApps 和与区块链交互的脚本。

2024-09-09 22:39:31 1115

原创 零基础用python开发btc(二bitcoinlib详解)

bitcoinlib是一个用于 Python 的比特币库,支持比特币和其他加密货币的生成、交易和管理。以下是如何在 Windows、macOS 或 Linux 上安装和使用bitcoinlib的详细教程。

2024-09-09 22:21:05 749

原创 零基础用python开发btc(一开源库)

Python不能直接链接btc网络或通过私钥操作查询/转账等各种操作,但是个子不够梯子来凑。对于开发者来说,选择适当的开源库或者第三方api就是架梯子。在 Python 中,有多个支持比特币(BTC)网络的开源库,可以用于与比特币网络交互、创建钱包、签署交易等。

2024-09-08 23:53:34 1132

原创 开发实战进阶之多线程/多进程c++

使用pthread库进行多线程编程为C和C++开发者提供了强大的控制能力。尽管C++11及更高版本提供了更为现代的pthread在处理更底层的操作时仍然有其用武之地。通过正确使用线程同步机制,可以有效地避免数据竞争等常见的多线程问题。

2024-09-03 14:41:53 1204

原创 开发实战进阶之函数【c++】三

接上篇开发实战进阶之函数【c++】二。

2024-08-28 00:30:00 916

原创 开发实战进阶之函数【c++】二

函数声明告诉编译器函数的接口信息,通常放在头文件中,便于共享。函数定义包含函数的具体实现,通常放在源文件中。

2024-08-28 00:15:00 750

原创 开发实战进阶之函数【c++】一

C++语言中有多种类型的函数,每种类型都有其特定的用途和特性。通过灵活使用这些函数类型,开发者可以编写更高效、更灵活和更可维护的代码。熟悉并掌握这些函数类型,对于提升C++编程能力至关重要。

2024-08-27 10:05:33 304

原创 开发实战之类和结构体【c++】

在 C++ 中,类的声明和定义是类设计的基础部分,允许您封装数据和操作数据的方法。这是面向对象编程(OOP)的核心。正确理解类的声明和定义是高效使用 C++ 的关键。类的定义通常包含在源文件(.cpp 文件)中,它提供了在类声明中列出的所有成员函数的具体实现。// 文件:MyClass.cpp// 构造函数实现// display 方法实现在这个例子中,MyClass的成员函数display和构造函数都在.cpp文件中定义。这种分离声明与定义的做法有助于减少编译依赖,提高编译效率。编译依赖性减少。

2024-08-27 00:15:00 2035

原创 开发实战进阶之类class【c++】二

接上篇。

2024-08-26 11:18:19 602

原创 开发实战进阶之类class【c++】一

抽象是通过使用抽象类和纯虚函数来实现的。抽象类至少包含一个纯虚函数,主要用于作为基类。抽象类不能被实例化,只能被继承。

2024-08-26 10:47:11 1029

原创 开发实战必备之初始化【c++】

在 C 和 C++ 中,初始化是在声明变量时为其赋予一个初始值的过程。这个过程不仅是好的编程实践,还有许多关键的好处,尤其是在 C++ 中,初始化对于资源管理和程序行为的正确性至关重要。

2024-08-26 10:28:35 735

原创 c/c++基础之数据结构【c++】

在 C++ 中,与 C 语言相比,我们不仅有访问所有 C 语言中的基础数据结构的能力,还可以利用 C++ 的标准模板库(Standard Template Library, STL)来使用更高级的数据结构和算法。这些数据结构在 C++ 中的实现提供了高效的数据操作能力,使得 C++ 非常适合用于需要复杂数据处理的应用程序。数组是一种线性数据结构,它可以存储固定大小的数据项序列,这些数据项必须是相同的数据类型。在 C 语言中,有几种基础的数据结构,这些结构是构建更复杂数据结构和算法的基础。

2024-08-26 10:10:41 857

原创 c/c++指针操作进阶【c++】

快慢指针是一种在链表问题中非常有用的技术,能够高效地解决一些常见问题。它的主要作用包括检测链表中的环、找到链表的中点、以及判断链表长度是否为偶数等。在使用这种技术时,了解其应用场景和实现细节非常重要。void*指针在C语言中是一个非常强大的工具,可以用于处理不同类型的数据,适用于通用函数、通用数据结构、回调函数等多种场景。尽管它非常灵活,但也要求开发者在使用时必须谨慎,确保正确的类型转换以避免潜在的错误。

2024-08-25 03:00:00 1941

原创 文件读写进阶之多线程/多进程读写【c++】

在C++中,多线程读写文件需要特别小心,以避免数据竞态(Race Condition)和死锁(Deadlock)等问题。

2024-08-25 02:45:00 1482

原创 开发必备之输入输出【c++】

C++提供了多种输入输出处理方式,包括控制台输入输出、文件输入输出、字符串流、格式化输入输出等。这些机制允许开发者灵活处理数据流、文件操作以及用户交互,从而编写更加健壮和灵活的应用程序。

2024-08-25 02:30:00 864

原创 解密黑神话:悟空为什么这么火?

成立时间:游戏科学成立于2014年,由一群来自腾讯的前员工创立。这些创始成员曾参与开发过《斗战神》这款同样以《西游记》为背景的网络游戏,因此他们在打造与孙悟空相关的游戏上具有丰富的经验。团队规模:随着《黑神话:悟空》项目的推进,游戏科学的团队规模不断扩大。最初是一个较小的团队,但随着项目的发展,该团队已增长至超过100人。代表作品《斗战神》:游戏科学的核心成员在加入腾讯之前开发的游戏,奠定了他们对西游题材的理解和开发经验。《百将行》:游戏科学的第一款独立作品,是一款以中国古代战争为背景的卡牌策略游戏。

2024-08-24 19:41:32 748

空空如也

空空如也

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

TA关注的人

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