zl程序教程

C++的使用

  • Effective C++第17条:要在单独的语句中使用智能指针来存储由new创建的对象

    Effective C++第17条:要在单独的语句中使用智能指针来存储由new创建的对象

    第17条: 要在单独的语句中使用智能指针来存储由new创建的对象 假设这里有一个函数用来显示处理优先级,另一个函数根据当前优先级为一个动态分配的 Widget 做一些处理: int priority(); void processWidget(std::tr1::shared_ptr<Widget> pw, int priority); 一定要时刻记住“使用对象管理资源”这一真理(参

    日期 2023-06-12 10:48:40     
  • C++ XML 库 TinyXML2 的基本使用

    C++ XML 库 TinyXML2 的基本使用

    大家好,又见面了,我是你们的朋友全栈君。0.前言TinyXML-2 是一个简单,小型,高效的 C ++ XML 解析器,可以轻松集成到其他程序中,直接引用源文件的话只需要包含两个文件(h 和 cpp,此外还有个测试文件里面带有 demo)。TinyXML-2 解析 XML 文档,并以此为基础构建可读取,修改和保存的文档对象模型(DOM)。文档说,在解释 XML 时仅使用 UTF-8 ,假定所有 X

    日期 2023-06-12 10:48:40     
  • C++版OpenCV使用神经网络ANN进行mnist手写数字识别[通俗易懂]

    C++版OpenCV使用神经网络ANN进行mnist手写数字识别[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。 说起神经网络,很多人以为只有Keras或者tensorflow才支持,其实OpenCV也支持神经网络的,下面就使用OpenCV的神经网络进行手写数字识别,训练10次的准确率就高达96%。 环境准备: vs2015 OpenCV4.5.0 以下为ANN神经网络的训练代码:#include<iostream> #include<o

    日期 2023-06-12 10:48:40     
  • 【c++】【基础】【primer_plus】【第十一章】使用类

    【c++】【基础】【primer_plus】【第十一章】使用类

    运算符重载运算符重载是多态的一种形式。指c++允许赋予同一运算符多种含义。运算符重载可使自定义类型(类等)看起来更像基本的数据类型。使用 operator声明重载函数。#pragma once class Point{ private: double m_x; double m_y; protected: public: Point(); Point(doub

    日期 2023-06-12 10:48:40     
  • c++使用了未定义类型_c++如何新建

    c++使用了未定义类型_c++如何新建

    大家好,又见面了,我是你们的朋友全栈君。 一、定义HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针 BOOL bInitialOwner, // 初始化互斥对象的所有者 LPCTSTR lpName // 指向互斥对象名的指针 );复制第一个参数是一个指向SECURITY_ATTRIBUTES结构体

    日期 2023-06-12 10:48:40     
  • C/C++ Qt 使用JSON解析库 [修改篇]

    C/C++ Qt 使用JSON解析库 [修改篇]

    JSON是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集,使用完全独立于编程语言的文本格式来存储和表示数据,简洁清晰的的层次结构使得JSON成为理想的数据交换语言,Qt库为JSON的相关操作提供了完整的类支持.<!--more-->创建一个解析文件,命名为config.json我们将通过代码依次解析这个JSON文件中的每一个参数,具体解析代码如下:{ &quo

    日期 2023-06-12 10:48:40     
  • C++——构造函数的使用注意事项及static用法

    C++——构造函数的使用注意事项及static用法

    开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情1.构造函数1.构造函数赋值和初始化列表#include<iostream> using namespace std; class date { public: date(int year = 1, int month = 1, int day = 1) { //函数体赋值

    日期 2023-06-12 10:48:40     
  • C/C++ 使用CRC检测磁盘文件完整性

    C/C++ 使用CRC检测磁盘文件完整性

    当软件被开发出来时,为了增加软件的安全性,防止被破解,通常情况下都会对自身内存或磁盘文件进行完整性检查,以防止解密者修改程序,我们可以将exe与dll文件同时做校验,来达到相互认证的目的,解密者想要破解则比较麻烦,当我们使用的互认证越多时,解密者处理的难度也就越大。实现磁盘文件检测,我们可以使用CRC32算法或者RC4算法来计算程序的散列值,以CRC32为例,其默认会生成一串4字节CRC32散列,

    日期 2023-06-12 10:48:40     
  • C/C++ 使用CRC检测内存映像完整性

    C/C++ 使用CRC检测内存映像完整性

    前面的那一篇文章中所使用的技术只能有效抵抗解密者直接修改硬盘文件,当我们使用动态补丁的时候,那么内存中同样不存在校验效果,也就无法抵御对方动态修改机器码了,为了防止解密者直接对内存打补丁,我们需要在硬盘校验的基础上,增加内存校验,防止动态补丁的运用。仅对.text代码段进行校验:通常程序中至少包括了代码段,数据段,而数据段中所存储的数据是经常会发生变动的,例如我们的全局变量,静态变量等都会默认存储

    日期 2023-06-12 10:48:40     
  • c++使用icu国际化(i18n)

    c++使用icu国际化(i18n)

    icuInternational Components for Unicode,https://github.com/unicode-org/icu.git https://icu.unicode.org/ 帮助文档: https://unicode-org.github.io/icu/userguide/icu/howtouseicu.htmli18n,Internationalizati

    日期 2023-06-12 10:48:40     
  • 【C++ 语言】引用数据类型 ( 引用数据类型定义 | 引用数据类型使用 | 引用类型参数 )

    【C++ 语言】引用数据类型 ( 引用数据类型定义 | 引用数据类型使用 | 引用类型参数 )

    文章目录引用类型引用类型引用数据类型 :1. 引用数据类型定义 : 类型名称& 变量名 = 对应类型变量名称 ; //① 定义 普通 类型 变量 int a = 8; //② 定义 引用类型变量, 格式 : 类型名称& 变量名 = 对应类型变量名称 ; int& b = a;复制 2. 上述引用数据类型解析 : int& 是引用数据类型 , b 是 a 的引用

    日期 2023-06-12 10:48:40     
  • C++:map和set的认识和简单使用/关联式容器

    C++:map和set的认识和简单使用/关联式容器

    关联式容器关联式容器即是用来存储数据的,并且存储的是<Key,Value>结构的键值对,在数据检索时效率比序列式容器高。序列式容器也就是vector、list、queue等容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。键值对用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息。比如,英汉翻译

    日期 2023-06-12 10:48:40     
  • 【C++】string类的基本使用

    【C++】string类的基本使用

    一、编码(ascll、unicode字符集、常用的utf-8编码规则、GBK)1.详谈各种编码规则ASCII码表里的字符总共有多少个?(转载自百度知道博主教育达人小李的文章)百度百科:统一码Unicode百度百科:UTF-8编码UTF-8兼容ascll编码,linux下默认使用的就是UTF-8的编码方式。百度百科:GBK字库 vs编译器默认使用的编码方式是GB2312编码。 下面这篇文章写的非

    日期 2023-06-12 10:48:40     
  • 【C++】vector的基本使用

    【C++】vector的基本使用

    一、vector和string的联系与不同1. vector底层也是用动态顺序表实现的,和string是一样的,但是string默认存储的就是字符串,而vector的功能较为强大一些,vector不仅能存字符,理论上所有的内置类型和自定义类型都能存,vector的内容可以是一个自定义类型的对象,也可以是一个内置类型的变量。2. vector在使用时需要进行类模板的实例化,因为传递的模板参数不同

    日期 2023-06-12 10:48:40     
  • 在C/C++函数中使用可变参数详解编程语言

    在C/C++函数中使用可变参数详解编程语言

    先说明可变参数是什么,先回顾一下C++里面的函数重载,如果重复给出如下声明: int func(); int func(int); int func(float); int func(int, int); 这样在调用相同的函数名 func 的时候,编译器会自动识别入参列表的格式,从而调用相对应的函数体。 但这样的方法毕竟有限,试想一下我们假如想定义一个函数,我们在调用之前(在运行期

    日期 2023-06-12 10:48:40     
  • C++对象数组中使用构造函数

    C++对象数组中使用构造函数

    对象数组中的元素同样需要用构造函数初始化。具体哪些元素用哪些构造函数初始化,取决于定义数组时的写法。 #include iostream using namespace std; class CSample{ public: CSample(){ //构造函数 1 cout Constructor 1 Called endl; CSample(int n){ //构造函数

    日期 2023-06-12 10:48:40     
  • C++类的定义和使用

    C++类的定义和使用

    在 C++ 中,类的定义方法如下: class  类名{访问范围说明符:  成员变量1  成员变量2  成员函数声明1  成员函数声明2 访问范围说明符:  更多成员变量  更多成员函数声明  }; 类的定义要以;结束。 访问范围说明符 一共有三种,分别是 public、private 和 protected

    日期 2023-06-12 10:48:40     
  • C++ deque使用、创建及初始化详解

    C++ deque使用、创建及初始化详解

    deque T ,一个定义在 deque 头文件中的容器模板,可以生成包含 T 类型元素的容器,它以双端队列的形式组织元素。可以在容器的头部和尾部高效地添加或删除对象,这是它相对于 vector 容器的优势。当需要这种功能时,可以选择这种类型的容器。 无论何时,当应用包含先入先出的事务处理时,都应该使用 deque 容器。处理数据库事务或模拟一家超市的结账队列,像这两种应用都可以充分利用 deq

    日期 2023-06-12 10:48:40     
  • C++ partition_copy(STL partition_copy)算法使用详解

    C++ partition_copy(STL partition_copy)算法使用详解

    partition_copy() 算法以和 stable_partition() 相同的方式对序列进行分区,但那些使谓词返回 true 的元素会被复制到一个单独的序列中,使谓词返回 false 的那些元素会被复制到第三个序列中。这个操作不会改变原始序列。 原始序列由前两个参数指定,它们必须是输入迭代器。第 3 个参数用来确定目的序列的开始位置,它会保存那些使谓词返回 true 的元素。第 4 个

    日期 2023-06-12 10:48:40     
  • C++类URL编码和解码使用技巧

    C++类URL编码和解码使用技巧

    在项目开发过程中,经常会使用到c++的url编码和解码,本文将以此问题详细介绍使用技巧,需要的朋友可以参考下复制代码代码如下:#pragmaonce#include<iostream>#include<string>#include<windows.h>usingnamespacestd;classstrCoding{public:strCoding(void

    日期 2023-06-12 10:48:40     
  • 从汇编看c++中默认构造函数的使用分析

    从汇编看c++中默认构造函数的使用分析

    c++中的源程序:复制代码代码如下:classX{private:   inti;}; intmain(){   Xx;}上面的类X没有定义构造函数,仅仅有一个inti。 下面为其汇编程序:复制代码代码如下:;7   :intmain(){    push   ebp;ebp为一个寄存器,总是指向一个函数调用堆栈的栈底,作为基址,用偏移量来访问该调用栈上的变量,但这里没有任何变量要访问,因此不起

    日期 2023-06-12 10:48:40     
  • C++按位异或运算符的使用介绍

    C++按位异或运算符的使用介绍

    参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0,1^0=1,0^1=1,1^1=0 例如:10100001^00010001=10110000 0^0=0,0^1=10异或任何数=任何数 1^0=1,1^1=01异或任何数-任何数取反   任何数异或自己=把自己置0 (1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与000

    日期 2023-06-12 10:48:40     
  • 基于C++自动化编译工具的使用详解

    基于C++自动化编译工具的使用详解

    @echooff title=HYTradingGateway自动化编译打包工具modeconcols=80lines=40echo-------------------------------------------------------------echo使用说明echo.                                                           

    日期 2023-06-12 10:48:40     
  • 基于C++字符串替换函数的使用详解

    基于C++字符串替换函数的使用详解

    在C++中,字符串替换有很多方法,这里主要说一下STL里的WString中的替换,虽然WString自带了一个Replace函数,但是只能替换一次,太不好了,因此单独写了个替换函数[函数]复制代码代码如下:/**       *@brief  实现字符串替换       *@param  orignStr源串       *@param  oldStr 查找的串       *@param  n

    日期 2023-06-12 10:48:40     
  • 浅析c++宏#val在unicode下的使用

    浅析c++宏#val在unicode下的使用

    #defineCHECK(condition)cout<<checkfailed:<<#condition<<endl; 上面这句宏,当你CHECK(myfunc());时,假设myfunc返回false,会输出:checkfailed:myfunc() 在宏中,#condition是把参数转换为字符串,这在打印log时,可以很方便的打印出函数名称等等 这个大

    日期 2023-06-12 10:48:40     
  • 深入C++函数映射的使用详解

    深入C++函数映射的使用详解

    想想我们在遇到多语句分支时是不是首先想到的是switccase和ifelseif...这2种方式在编码方面确实简单少,但是当分支达到一定数量后,特别是分支内部有嵌套大段代码或者再嵌套分支,代码会显得异常臃肿,十分难以维护,对于ifelseif语句过多的分支带来过多的判定句,势必会影响效率。 3种替代方法简述:1.使用map,需要构建树和节点,比数组的方式消耗更多的内存,查询时间复杂度为Log(N

    日期 2023-06-12 10:48:40     
  • C/C++可变参数的使用

    C/C++可变参数的使用

    可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等。可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种写个重载)。在C#中有专门的关键字parame,但在C,C++并没有类似的语法,不过幸好提供这方面的处理函数,本文将重

    日期 2023-06-12 10:48:40     
  • c++生成dll使用python调用dll的方法

    c++生成dll使用python调用dll的方法

    第一步,建立一个CPP的DLL工程,然后写如下代码,生成DLL 复制代码代码如下:#include<stdio.h>    #defineDLLEXPORTextern"C"__declspec(dllexport)    DLLEXPORTint__stdcallhello()    {       printf("Helloworld!\n");       return0;  

    日期 2023-06-12 10:48:40     
  • C++中typedef及其与struct的结合使用

    C++中typedef及其与struct的结合使用

    复制代码代码如下://相当于为现有类型创建一个别名,或称类型别名。//整形等typedefintsize; //字符数组charline[81];chartext[81];//=> typedefcharLine[81];Linetext,secondline; //指针typedefchar*pstr;intmystrcmp(pstrp1,pstrp2);//注:不能写成intmystr

    日期 2023-06-12 10:48:40     
  • c++11可变参数使用示例

    c++11可变参数使用示例

    复制代码代码如下:#include<iostream>#include<initializer_list>usingnamespacestd;intget_sum(int,initializer_list<int>);intmain(intargc,char*argv[]){   cout<<get_sum(2,{1,2,3})<<en

    日期 2023-06-12 10:48:40     
  • C++中sprintf使用的方法与printf的区别分析

    C++中sprintf使用的方法与printf的区别分析

    本文实例讲述了C++中sprintf使用的方法与printf的区别。分享给大家供大家参考。具体分析如下: 首先我们在MSDN看一下printf的原型和sprintf的原型 复制代码代码如下:intprintf(constchar*format[,argument]...); 和 复制代码代码如下:intsprintf(char*buffer,constchar*format[,argument]

    日期 2023-06-12 10:48:40