Loading

随笔分类 -  cpp

摘要:0. 前言 RAII (Resource Acquisition Is Initialization, 资源获取即初始化) 是 C++ 特有的资源管理方式,依托栈和析构函数对所有资源(包括堆)进行管理。实际上就是利用一个类来实现一个来管理资源,将资源和类对象的生命周期进行绑定,这样就可以不用再手动释 阅读全文
posted @ 2022-05-26 16:59 锦瑟,无端 阅读(560) 评论(0) 推荐(0)
摘要:一、基本概念 堆(heap),在内存管理的语境下,指的是动态分配内存的区域,与数据结构里的堆不是一个概念。这里的内存,被分配之后需要手工释放,否则,就会造成内存泄漏。 C++ 标准里使用 new 和 delete 分配和释放内存的区域叫自由存储区(free store),这是堆的一个子集: new 阅读全文
posted @ 2022-05-14 15:53 锦瑟,无端 阅读(418) 评论(0) 推荐(0)
摘要:在一些编程练习中,经常会对字符串进行处理,往往处理之前都会对字符串进行分割来提取各部分信息。在C中虽然没有像python那样提供split这样直接的字符串分割函数,但也有一些其他的方法能够对其进行分割,下面介绍几种C中常用的字符串分割方法。 方法一:通过 string 成员函数实现 find() 函 阅读全文
posted @ 2022-04-12 16:15 锦瑟,无端 阅读(657) 评论(0) 推荐(0)
摘要:本文内容主要来自微信公众号:C语言与CPP编程,后续会根据学习内容陆续更新 有些关键字在 cpp 文件中多写 对于 C++ 类,一些关键字只要写在 .h 中就好,cpp 中就不用再加上了,比如 virtual、static 等关键字,如果在 cpp 中多写,编译器会报错。比如如下的虚接口与静态成员变 阅读全文
posted @ 2022-04-11 09:30 锦瑟,无端 阅读(135) 评论(0) 推荐(0)
摘要:我测试 libpcap 的源码 void parse_pacp() { char errbuf[PCAP_ERRBUF_SIZE] = ""; // PCAP_ERRBUF_SIZE 为 512 字节 // const char* dir = "****"; pcap_t *pcap_ptr = p 阅读全文
posted @ 2022-01-05 17:10 锦瑟,无端 阅读(2464) 评论(0) 推荐(1)
摘要:本文转载至:Jessica程序猿 博文 C++函数的传入参数是指针的指针(**)的详解, 仅作了些许格式调整和内容修改。 要修改变量的值,需要使用变量类型的指针作为参数或者变量的引用。如果变量是一般类型的变量,例如 int,则需要使用 int 类型的指针类型int* 作为参数或者 int 的引用类型 阅读全文
posted @ 2022-01-05 09:35 锦瑟,无端 阅读(686) 评论(0) 推荐(0)
摘要:一、什么是迭代器适配器 C++ STL 标准库种的迭代器大致分为 5 种类型,输入迭代器、输出迭代器、前向迭代器、双向迭代器以及随机访问迭代器,它们是最基础的迭代器,对于很多场合,它们并不适合。 迭代器适配器是对 5 种基础迭代器进行封装,对基础迭代器的成员方法进行整合、修改,甚至添加一些新的成员方 阅读全文
posted @ 2021-12-17 11:01 锦瑟,无端 阅读(1283) 评论(0) 推荐(0)
摘要:一、什么是无序容器 无序容器是 C++ 11 标准正式引入到 STL 标准库中的,和关联式容器一样,无序容器也使用键值对的方式存储数据,不过关联式容器底层采用红黑树,无序容器底层采用哈希表。 C++ STL 底层采用哈希表实现无序容器时,会将所有数据存储到一整块连续的内存空间中,并且当数据存储位置发 阅读全文
posted @ 2021-11-27 16:55 锦瑟,无端 阅读(5128) 评论(0) 推荐(1)
摘要:一、什么是关联容器 关联容器存储的元素,是由一个个“键值对”(<key, value>)组成。通过键,往往能很快的检索到对应的值。 关联容器可以快速查找、读取或者删除所存储的元素,同时该类型的容器插入元素的效率比序列容器高。 STL 标准库在实现关联式容器时,底层选用红黑树来组织和存储各键值对。 1 阅读全文
posted @ 2021-11-22 11:06 锦瑟,无端 阅读(1502) 评论(0) 推荐(1)
摘要:一、什么是序列容器 序列容器即以线性排序来存储某一特定类型数据的容器,该类容器不会自动对存储的元素按照元素值的大小进行排序。 序列容器大致包含以下几类: array<T,N>(数组容器):表示可以存储 N 个 T 类型的元素,是 C++ 本身提供的一种容器。此类容器一旦建立,其长度就是固定不变的,不 阅读全文
posted @ 2021-11-13 17:01 锦瑟,无端 阅读(1036) 评论(0) 推荐(0)
摘要:一、STL 基本组成 通常认为,STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的。 STL 的组成 含义 容器 一些封装数据结构的模板类,例如 vector 向量容器、list 列表容器等。 算法 STL 提供了非常多(大约 10 阅读全文
posted @ 2021-11-06 10:30 锦瑟,无端 阅读(276) 评论(0) 推荐(0)
摘要:一、多文件编程是什么 为了方便后期的维护,分散代码应遵循一个基本原则:实现相同功能的代码应存储在一个文件中。 C++ 代码文件根据后缀名的不同,大致可以分为如下几类: .h:头文件 .hpp:头文件,header plus plus 的缩写,混杂着 .h 的声明 .cpp 的定义,OpenCV 采用 阅读全文
posted @ 2021-10-26 15:32 锦瑟,无端 阅读(2880) 评论(0) 推荐(1)
摘要:一、C++文件类及用法 C++ 标准库提供了 3 个类用于实现文件操作,它们统称为文件流类,这 3 个类分别为: ifstream:专用于从文件读取数据 ofstream:专用于向文件写入数据 fstream:可读可写 这三个文件流类都位于 fstream 头文件中 fstream 类拥有 istr 阅读全文
posted @ 2021-10-26 10:47 锦瑟,无端 阅读(1858) 评论(0) 推荐(0)
摘要:一、概览 C++ 中用于实现数据输入和输出的这些流类以及它们之间的关系: istream:常用于接收从键盘输入的数据; ostream:常用于将数据输出到屏幕上; ifstream:用于读取文件中的数据; ofstream:用于向文件中写入数据; iostream:继承自 istream 和 ost 阅读全文
posted @ 2021-10-25 17:30 锦瑟,无端 阅读(1359) 评论(0) 推荐(0)
摘要:一、拷贝构造函数 拷贝指用已经存在的对象创建出一个新的对象,拷贝是在初始化阶段进行的,也就是用其他对象的数据来初始化新对象的内存。 void func(string str) cout << str << endl; int main() { string s1 = "asdf"; // 拷贝 st 阅读全文
posted @ 2021-10-25 10:35 锦瑟,无端 阅读(188) 评论(0) 推荐(0)
摘要:一、异常处理入门 程序的错误大致分为三种: 语法错误,在编译和链接阶段就能发现; 逻辑错误,可以通过调试解决; 运行时错误,异常机制是为解决此类错误引入。 一个运行时错误的例子 int main(){ string str = "asdfa"; char ch1 = str[10]; // 越界 c 阅读全文
posted @ 2021-10-22 15:21 锦瑟,无端 阅读(250) 评论(0) 推荐(0)
摘要:1. 快速入门 在 C++ 中,数据的类型也可以通过参数来传递,在函数定义时可以不指明具体的数据类型,当发生函数调用时,编译器可以根据传入的实参自动推断数据类型。这就是类型的参数化。 函数模板 所谓函数模板,实际上是建立一个通用函数,它所用到的数据的类型(包括返回值类型、形参类型、局部变量 类型)可 阅读全文
posted @ 2021-10-21 19:09 锦瑟,无端 阅读(293) 评论(0) 推荐(0)
摘要:1. 运算符重载简介 所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。同样运算符重载(Operator Overloading)可以让同一个运算符可以有不同的功能。 + 可以对 int、float、string 阅读全文
posted @ 2021-10-14 15:23 锦瑟,无端 阅读(1094) 评论(0) 推荐(1)
摘要:1. 多态与虚函数快速入门 基类的指针可以指向派生类对象,其使用的是派生类对象的数据,调用的是根据指针的类型调用成员函数。 对此 C++ 提供了虚函数,当基类指针指向基类对象时,使用基类的成员(包括成员函数和成员变量),当基类指针指向派生类对象时,使用派生类的成员。也就是说,虚函数可以让基类指针按照 阅读全文
posted @ 2021-10-13 16:47 锦瑟,无端 阅读(1064) 评论(0) 推荐(1)
摘要:1. 继承和派生入门 继承可以理解为一个类在另一个类的成员变量和成员函数上继续拓展的过程。这个过程站的角度不同,概念也会不同,继承是儿子接收父亲,派生是父亲传承给儿子。 被继承的类称为父类或基类,继承的类称为子类或派生类。“子类”和“父类”通常放在一起称呼,“基类” 和“派生类”通常放在一起称呼。 阅读全文
posted @ 2021-09-28 22:01 锦瑟,无端 阅读(5357) 评论(1) 推荐(4)