前言反向迭代器的使用相信大家都已经比较熟悉了,那我们这篇文章具体讲什么呢? 🆗,这篇文章我们重点来讲一下反向迭代器的模拟实现。 那为什么我们之前不和正向迭代器放在一块讲呢?为什么要等到我们讲完了容器适配器再来讲反向迭代器的模拟实现呢? 那这个问题我相信学完这篇文章大家就明白了。1. list 的反向迭代器模拟实现首先我们来回看一下我们之前模拟实现list的代 ......
36
0
0
2024-04-30
T1.代码语言:javascript复制int main() { int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf( "%d,%d", *(a + 1), *(ptr - 1)); return 0; } //程序的结果是什么 ......
33
0
0
2024-04-30
🐲一.关于 strlen 函数与数组、指针的综合笔试题🐋T1.代码语言:javascript复制 //字符数组 char arr[] = {'a','b','c','d','e','f'}; 1. printf("%d\n", strlen(arr)); 2. printf("%d\n", strlen(arr+0)) ......
27
0
0
2024-04-30
这篇文章我们接着上一篇的内容,再来学一个STL里的容器适配器——priority_queue(优先级队列)1. priority_queue的介绍和使用1.1 priority_queue的介绍我们上一篇文章学了queue(队列),那优先级队列也是在<queue>里面的:和queue一样,priority_queue也是一个容器适配器,那他和qu ......
23
0
0
2024-04-30
一.彻底明白 sizeof 操作符 ,数组名,strlen 函数1.数组名的意义 1. sizeof ( 数组名 ),这里的数组名表示的是整个数组 ,计算的是整个数组的大小; 2.&数组名 ,取出的是整个数组的地址,虽然与数组首元素地址的值相同,但意义却完全不同; 3.除此之外的其他所有情况数组名都表示数组首元素的地址。2. sizeof 详解 1. ......
29
0
0
2024-04-30
1. stack的介绍及使用1.1 stack的介绍stack的文档介绍stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器是使用特定容器类的封装对象作为其基础容器的类,提供一组特定的成员函数来访问其元素。元素从特定容器的“背面”(称为堆栈顶部)推 ......
25
0
0
2024-04-30
前言这篇文章我们来继续STL的学习,今天我们要学习的是list,也是STL中容器的一员。 和之前一样,我们还是先学习它的使用,然后再对它进行一个深度剖析和模拟实现。1. list的介绍及使用1.1 list的介绍list的文档介绍list的底层实现其实就是我们之前数据结构学过的带头双向循环链表:1.2 list的使用首先我们来学习一下list的使用:那经过之 ......
18
0
0
2024-04-30
一.回调函数要想理解回调函数,就要先知道什么是函数指针,函数指针详见:http://t.csdn.cn/oYiuC1.回调函数的定义函数指针作为某个函数的参数函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。 简单讲:回调函数是由别人的函数执行时调用你实现的函数。2.来自知乎作者常溪玲的解说你到一个商店买东西,刚好你要的东西 ......
23
0
0
2024-04-30
这篇文章我们来做几道vector相关的OJ练习,练习一下vector的使用。。1. 只出现一次的数字题目链接: link思路讲解那这道题我们用^来搞是不是就非常简单啊。 两个相同的整数异或结果为0;0和任何整数异或结果还是这个数本身。 所以可以怎么搞,定义一个变量初始值为0,遍历数组,让它和每一个元素进行异或,最终的结果就是数组中只出现一次的那个数字。AC代 ......
22
0
0
2024-04-30
前言这篇文章我们来学习一下STL里面的vector,它属于STL中容器的一员,我们先来学习一下它的使用,然后,我们也会对vector进行一个深度的剖析和模拟实现。1. vector的介绍及使用1.1 vector的介绍vector的文档介绍 vector 是表示大小可以更改的数组的序列容器:其实大家可以认为vector就是我们之前数据结构学的顺序表,那说到顺 ......
18
0
0
2024-04-30
前言在上两篇中,我们已经学习了string类的一个使用,并且做了一些相关的OJ练习,相信大家现在对于string的使用已经没什么问题了。 那我们这篇文章呢,就来带大家对string进行一个模拟实现,这篇文章过后,有些地方大家或许就可以理解的更深刻一点。1. string的结构那通过之前文章的学习我们已经对string有了一些了解了:我们知道,string的底 ......
16
0
0
2024-04-30
我们来看几道string相关的OJ,来练习一下string的使用。1. 仅仅反转字母题目链接: link我们一起来看一下题:思路分析我们来分析一下题目,这道题让我们干什么呢? 给我们一个字符串,该字符串中有英文字符也有非英文字符,要求我们去反转字符串中的所有英文字母,非英文字母的字符位置不动。 那是不是很简单啊,左右两个指针分别指向首尾,然后依次向中间移动 ......
19
0
0
2024-04-30
1. STL简介1.1 什么是STLSTL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。1.2 STL的版本原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、 ......
25
0
0
2024-04-30
1. 泛型编程首先我们来思考一个问题:如何实现一个通用的交换函数呢?即我们想交换两个变量,这两个变量可以是整型,也可以是浮点型,或者其它内置类型,然后它们的交换都可以用一个函数完成。 那在C语言中肯定是没法解决这个问题的,不过我们之前学习过在C++里支持函数重载,所以呢,我们就可以这样搞:代码语言:javascript复制void Swap(int& ......
30
0
0
2024-04-30
在之前C语言的学习中,我们学过了C是如何进行动态内存管理的,也简单的了解过C/C++程序的内存开辟。 这篇文章呢,我们重点来学习一下C++的内存管理方式。1. C/C++内存分布C/C++的内存分布我们在之前也是了解过的,那我们这里再简单复习一下。我们先来看下面的一段代码和一些相关的问题:代码语言:javascript复制int globalVar = 1 ......
23
0
0
2024-04-30