自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (11)
  • 收藏
  • 关注

原创 C++开发基础之了解void*类型的指针用法

void*类型是一个通用的指针类型,可以指向任意类型的数据,但它本身不包含任何类型信息。在 C 和 C++ 等编程语言中,void* 类型的指针被用来表示一个未知类型的指针。这种指针的具体用法通常是为了实现一些通用的数据结构或算法,或者在不同类型之间传递指针时的类型安全性问题。在C++中,任何对象的指针都可以转换为void*类型的指针,这种转换称为指针的强制类型转换或隐式转换。这种特性允许将任何类型的指针赋值给void*类型的指针,并且可以通过或者 C 风格的强制转换来实现。

2024-05-09 14:24:05 627

原创 C++开发基础之函数参数传递的几种类型

在C++中,接口指针或类对象的函数参数传递是一个常见的做法,特别是在需要支持多态或动态绑定时。这里将介绍如何传递接口指针或类对象作为函数参数。

2024-05-07 17:59:09 448

原创 C++开发基础之浅谈多线程的锁机制

在C++中,多线程的锁机制是确保线程安全的重要组成部分。当多个线程需要访问共享资源时,锁可以防止同时访问,从而避免数据竞争和条件竞争。C++11及其之后的版本提供了多种锁机制,包括互斥锁(mutex)递归锁(recursive mutex)共享锁(shared mutex)和读写锁(read-write mutex)。互斥锁(std::mutex)std::mutex是最基本的锁类型,用于保护共享数据,确保同时只有一个线程可以访问该数据。使用lock和unlock方法或者和管理类来简化锁的管理。

2024-05-07 11:11:20 1093

原创 C++开发基础理解std::string 对象的生命周期,避免悬空指针或内存访问错误

避免悬空指针或内存访问错误。在处理字符串转换时,始终牢记确保数据的有效性和一致性是非常重要的。

2024-03-28 13:21:46 799

原创 Garnet技术实战测试开发:像使用Redis一样使用Garnet

Garnet是微软研究院基于C# .NET8.0开发的一种新型远程缓存存储系统,它设计目的是实现极速、可扩展和低延迟。Garnet能够在单节点内进行线程扩展,并支持分片集群执行,具备复制、检查点、故障转移和事务处理功能。它可以在主内存以及分层存储(如SSD和Azure存储)上运行。Garnet提供丰富的API接口和强大的可扩展性模型。

2024-03-25 06:00:00 2554

原创 C++开发基础之对象的生存周期和内存管理方式(堆内存和栈内存)

栈内存适合用于管理局部变量和短期对象,自动分配和释放,速度快,但大小受限;堆内存适合用于动态分配内存,对象生存期需要延长或者大小不确定的情况,需要手动管理内存,速度较慢,容易出现内存泄漏问题。

2024-03-20 10:31:23 760

原创 C++开发基础之宏定义

宏定义的工作原理涉及到宏的解析和展开过程,以及如何使用带参数的宏。通过对这些过程的理解,我们可以更清楚地掌握宏定义在代码中的作用。当我们讨论如何定义简单的宏和带参数的宏时,我们需要考虑如何使用#define关键字来创建这些宏。使用#define关键字可以定义简单的宏,通常用于定义常量或简单的替换文本。(a) : (b))其中,第一个宏定义了常量PI,第二个宏定义了一个比较大小的函数式宏。带参数的宏可以通过在宏定义中使用参数来实现更灵活的功能。这里,SQUARE宏接受一个参数并返回该参数的平方,而。

2024-03-19 10:20:04 1120

原创 C++开发基础之探索程序启动入口函数

在C++编程中,了解程序的入口函数是至关重要的。入口函数是程序执行的起点,它接收参数并开始执行程序的主要逻辑。对于应用程序而言,有多种入口函数可供选择,每种都有其特定的用途和适用场景。本文将深入探讨C++程序开发中常见的入口函数。main主要用于命令行应用程序。是 C/C++ 程序的入口函数。接收argc和argv参数,用于处理命令行参数。WinMain主要用于 Windows 图形用户界面 (GUI) 应用程序。是 Windows 程序的入口函数。通过调用等函数来创建和管理窗口。

2024-03-08 10:19:28 1274

原创 C++开发基础之简单的计时器也有适配场景

计时器的开发通常涉及到计算时间间隔的方法和计算时间的方式。获取起始时间点:在开始计时时,记录当前的时间戳作为起始时间点。获取结束时间点:在结束计时时,记录当前的时间戳作为结束时间点。计算时间间隔:通过起始时间点和结束时间点的差值,计算出经过的时间间隔。显示计时结果:将计算得到的时间间隔转换成合适的时间单位(如毫秒、秒等),并展示给用户。每种方法都有其独特的优势和劣势,具体选择取决于项目需求、平台要求和精度要求。

2024-03-06 17:57:26 903

原创 面向对象设计之虚拟属性,详解应用场景和最佳实践

在基类中定义虚拟属性时,需要使用。

2024-02-29 10:11:35 1018

原创 C++开发基础之异步编程模式

异步编程模式是现代C++开发中不可或缺的一部分。在处理IO密集型或者长时间运行的任务时,异步编程可以提高程序的响应性和吞吐量。1. 需要执行耗时的 I/O 操作:例如读取文件、数据库操作、网络请求等,这些操作通常需要花费较长时间。如果使用同步方法,程序将会被阻塞,无法响应其他操作。而使用异步编程模式,可以在这些操作执行过程中继续处理其他任务,从而提高程序的并发性能和响应能力。2. 需要执行计算密集型操作:虽然异步编程通常与 I/O 操作相关联,但它也可以用于执行计算密集型操作,例如图像处理、科学计算等。

2024-02-28 10:58:24 1150

原创 C++开发基础之文件操作

C++ 是一种功能强大的编程语言,它提供了丰富的文件操作功能,可以用于读取、写入和处理文件。在本文中,我们将介绍 C++ 中文件操作的基础知识,包括读写文件和一些常见的文件操作。

2024-02-27 17:51:06 2165

原创 C++开发基础之命名空间

命名空间是C++中用来组织和管理标识符(如变量、函数、类等)的一种机制。它可以帮助解决不同作用域中标识符的冲突问题,并提供了一种组织和封装代码的方式。C++中的命名空间是一种用来避免命名冲突并组织代码的机制。在C++开发中,命名空间起着非常重要的作用,可以帮助我们编写清晰、模块化的代码,并提高代码的可维护性和可读性。在C++中,可以使用namespace// 函数实现// 类定义和实现。

2024-02-23 18:03:15 438

原创 C++开发基础之理解结构体和类型别名妙用

当定义结构体和类型别名时,可以使用using关键字代替typedef,这样可以使代码更加简洁易懂.

2024-02-22 14:13:04 1327

原创 C++开发基础之函数的参数类型高级用法

当涉及到高级参数传递方式时,有几种常见的技术可以在 C++ 中使用。

2024-02-21 09:00:00 1010

原创 C++开发基础之函数的参数类型基础用法

在C++中,函数的参数类型可以是以下类型之一:值参数(Value parameters):将参数作为函数的副本传递。这意味着在函数内部对参数值的更改不会影响原始变量。在函数调用时,可以将常量、变量或表达式作为实参传递。引用参数(Reference parameters):将参数作为原始变量的引用传递。这允许函数更改原始变量的值,并且避免不必要的复制。在函数调用时,必须使用变量或表达式的名称作为实参传递。指针参数(Pointer parameters):将参数作为指向原始变量的指针传递。

2024-02-20 10:37:03 964

原创 C++开发基础之智能指针(smart pointers)

C++ 智能指针(smart pointers)是一种可以自动管理内存的指针。在 C++ 中,手动管理内存很容易出错,特别是在涉及到动态分配内存和释放内存的时候。使用智能指针可以避免很多内存操作上的错误,提高代码的可读性和安全性。智能指针有三种常用的类型:shared_ptr 、 unique_ptr和weak_ptr。下面将介绍它们的用法。

2024-02-19 11:19:08 925 1

原创 c++开发基础之保障多线程编程中的原子操作InterlockedIncrement和InterlockedDecrement用法详解

在多线程编程中,确保对共享变量进行原子操作是至关重要的。当多个线程同时访问和修改同一共享资源时,如果没有合适的同步机制,可能会导致数据竞争、内存一致性问题,甚至造成程序崩溃。为了解决这个问题,C++提供了一组原子操作函数,其中包括InterlockedIncrement和InterlockedDecrement。本文将深入探讨这两个函数的用法,以及它们在多线程环境中的重要性。

2024-02-18 11:03:21 1083 1

原创 C++开发基础之循环链表详解含示例

循环链表的结构可以通过定义一个节点结构体来实现。每个节点包含两个主要成员:数据和指向下一个节点的指针。int data;// 节点中存储的数据Node* next;// 指向下一个节点的指针在循环链表中,需要注意的一点是最后一个节点的指针不是NULL,而是指向头节点,形成了一个环。因此,在创建循环链表时,需要特别处理最后一个节点的指针,使其指向头节点。另外,为了方便操作循环链表,还可以定义一个指向头节点的指针,以便快速访问和操作循环链表的各个节点。// 指向循环链表头节点的指针。

2024-02-02 14:47:07 1301

原创 C++开发基础之预编译头文件 stdafx.h的作用

stdafx.h 是一个预编译头文件,在 Visual C++ 中被广泛使用。它包含了一组常用的头文件,这些头文件在整个项目中会被频繁使用。通过预编译头文件,编译器可以事先处理这些头文件,并将其保存在一个二进制文件中,以加快后续的编译过程。

2024-02-01 10:41:53 1478 1

原创 C++开发基础之生产者和消费者模型:实现多线程数据交换与同步

在并发编程中,处理多个线程之间的数据交换和同步是一个常见而重要的挑战。生产者和消费者模型是一种经典的解决方案,它为我们提供了一种简单而灵活的方法来协调多个线程的操作。无论是构建消息队列、日志记录系统还是任务调度系统,生产者和消费者模型都能够有效地管理数据流,提高系统的性能和可靠性。生产者和消费者模型是一种常见的多线程编程模型,用于解决生产者和消费者之间数据交换和同步的问题。它可以应用于各种场景,如消息队列、日志记录系统、任务调度系统等。通过合理地设计和实现生产者和消费者模型,可以提高系统的并发性能和可靠性。

2024-01-30 23:43:45 875 1

原创 C++开发基础之提升效率的神奇工具掩码的妙用

在C++编程中,我们经常面对需要在位级别上进行操作的情况。**掩码(Mask)**是一种强大的工具,不仅可以提高代码的效率,还能使代码更为紧凑和可读。在本篇博客中,我们将深入探讨掩码的应用,并演示如何巧妙地运用它来解决各种编程问题。掩码是一个包含了特定位信息的二进制数。通过将掩码与目标值进行按位与运算,我们可以保留或清除目标值的特定位。// 定义目标值和掩码// 二进制表示法// 应用掩码// 输出结果。

2024-01-29 10:32:59 1243

原创 C++开发基础之掌握常用的三种异步编程模型

以上是三种常见的C++异步编程模型,每种模型都有其适用的场景和特点。根据具体需求,你可以选择合适的模型来进行异步编程。

2024-01-26 11:52:15 1019 1

原创 C++开发基础之PugiXML库基础用法详解

PugiXML是一个开源、轻量级的C++ XML解析库,它具有简单易用、高效稳定的特点。本文将介绍如何使用PugiXML库来解析和创建XML文档。

2024-01-25 09:10:55 1595

原创 C++开发基础之基于SQLite数据库开发的基础知识

SQLite是一个自包含、无服务器的SQL数据库引擎。轻量级:SQLite库非常小巧,适合嵌入到应用程序中。零配置:SQLite不需要独立的服务器进程或配置文件。单文件存储:整个数据库存储在单个文件中,方便管理和迁移。ACID事务支持:支持原子性、一致性、隔离性和持久性的事务操作。本篇博客提供了C++与SQLite数据库交互的基础知识和操作示例。希望能够帮助您在C++开发中有效地使用SQLite数据库。

2024-01-24 13:52:38 1555 1

原创 C++开发基础之命名管道用法详解含示例程序

命名管道(Named Pipe)是一种在操作系统中用于进程间通信的机制。它允许不相关的进程通过共享一个命名的管道来交换数据。命名管道可以在本地计算机上的进程之间进行通信,也可以在不同计算机上的进程之间进行跨网络通信。命名管道的创建和使用类似于传统的匿名管道(Anonymous Pipe),但有一些重要的区别。首先,命名管道是具有唯一名称的,而匿名管道是无名的临时管道。其次,命名管道可以在不同的进程之间进行通信,而匿名管道仅限于父子进程或相关进程之间的通信。

2024-01-22 19:26:48 1591

原创 C++基础开发之DLL开发的导出函数与C#导入函数参数类型对齐

在C++中,通过DLL导出函数,通常使用__declspec(dllexport)修饰符。在C#中,通过DllImport来导入C++ DLL中的函数。确保参数类型在C++和C#之间正确对齐非常重要,在 C++ 开发 DLL 提供给 C# 使用的过程中,导出函数的参数类型可以包括多种。以下是一些常见的参数类型,以及每种类型的示例,同时提供了相应的 C#DllImport函数的编写方式。

2024-01-20 06:00:00 446

原创 C++开发基础之创建DLL的常见的6种导出函数(Export Functions)形式

Windows将函数声明和定义分开,使用 __declspec(dllexport) 修饰定义

2024-01-19 17:58:10 1581

原创 C++开发基础之数据结构基础双链表模型

双向链表(Doubly Linked List)是一种链表数据结构,与单向链表不同,它的每个节点包含两个指针,分别指向前一个节点(前驱)和后一个节点(后继)。由于每个节点都有前一个节点的指针,因此在双向链表中,可以从头节点开始,沿着后继指针一直遍历到尾节点,也可以从尾节点开始,沿着前驱指针一直遍历到头节点。这种特性使得双向链表的遍历更加灵活。相比单向链表,双向链表在插入和删除节点时更为高效。

2024-01-19 10:54:26 939

原创 C++开发基础之Windows平台共享内存开发入门

共享内存是一种在多个进程之间共享数据的有效方式,而内存映射文件技术(Memory-Mapped Files)提供了一种将磁盘文件映射到进程地址空间的机制,在Windows提供了一组API,使得在C++中实现共享内存变得相对容易。

2024-01-18 17:28:59 1332

原创 实用技能之Python调用C++或者C#开发的DLL动态库

Python作为一门高级编程语言,可以快速地实现各种复杂的业务逻辑和算法。但对于一些计算密集型任务,Python的执行效率可能不尽如人意。此时,我们可以考虑使用C/C++等底层语言来编写性能更高的代码,并通过动态链接库(DLL)的方式,在Python中调用这些代码。在实际开发中,Python调用DLL的场景非常广泛。例如,使用第三方库、访问硬件接口、提高性能、调用系统函数和与其他语言交互等。通过DLL,Python可以方便地调用各种底层接口,从而使得Python可以胜任更多的任务。

2024-01-17 11:42:38 1373

原创 C++开发基础之网络编程WinSock库使用详解TCP/UDP Socket开发

Winsock提供了一组函数和数据结构,这些函数和数据结构可以让开发人员创建和管理套接字(Socket),并通过套接字与其他计算机进行通信。Winsock提供了一些基本的套接字函数,如socket()、bind()、connect()、send()、recv()等,这些函数实现了套接字的创建、绑定、连接、发送数据和接收数据等操作。一旦有客户端连接,就会创建一个新的套接字来处理客户端请求,然后通过该套接字与客户端进行通信。函数接受客户端的连接请求,并返回一个新的socket文件描述符,用于后续与客户端通信。

2024-01-15 11:51:23 1380

原创 C++开发基础之CreateThread详细用法

在上面的示例中,我们首先创建了一个信号量 semaphore,然后使用 CreateThread 创建了一个新的线程,并将线程函数设置为 MyThreadFunction。该函数返回之前的线程亲和性掩码,可以用来还原之前的设置。GetThreadAffinityMask和SetThreadAffinityMask是Windows API提供的两个函数,用于获取和设置线程的亲和性掩码。在调用CreateThread函数后,新线程将开始运行指定的线程函数,并且可以访问该函数中的参数。

2024-01-11 10:20:02 3249 1

TabFragmentDemo

TabHost,TabContentFactory,IOnTabChangeListener,FragmentActivity,FragmentManager,SupportFragmentManager,FragmentTransaction

2014-06-16

顺序表、栈、队列C语言代码

顺序表,栈,队列C语言代码,基本的初始化,插入,删除

2014-01-15

常用计算机英语词汇-1695词

常用计算机英语词汇-1695词;

2014-01-08

SQLReportbuilder2.0完美指导教学

SQLReportbuilder2.0完美指导教学 自己讲doc格式去掉

2012-12-22

学生管理系统

学生管理系统 纯c代码 结构清晰 易懂 欢迎 下载

2012-08-29

五子棋源代码

五子棋源代码 纯手工写成 ,标示清晰 欢迎下载

2012-08-29

数据结构习题集答案(C语言版严蔚敏).doc

数据结构习题集答案(C语言版严蔚敏).doc

2011-05-02

c++语言程序设计讲稿,第四版

c++语言程序设计讲稿,第四版,清华大学出版设出版 郑莉 董渊 何江舟 ppt

2011-04-09

用共有继承的方法求一类图型的面积

用共有继承的方法求一类图型的面积 共有继承 类 没有c++程序的可以单击右键选择打开方式用txt打开可看见源代码。

2011-04-05

求x的n次方 用函数方法,while语句的用法

定义一个函数,求x的n次方。while语句的用法要注意。

2011-04-05

c++ 源程序 九九乘法表

九九乘法表,关键在于输出的表达式! 九九乘法表,源代码。欢迎下载!

2010-10-18

空空如也

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

TA关注的人

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