![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 66
清酒。233
Hello World!
展开
-
108.STL adjacent_find算法
查找了相邻的两个重复元素,即 2 和 4。如果找到了相邻重复元素,返回的迭代器指向第一个重复元素;如果未找到,返回的迭代器等于。是C++ STL中的算法之一,用于在指定范围内查找相邻重复的元素,返回第一对相邻重复元素的第一个元素的迭代器。也可以通过提供谓词函数来自定义判定条件。原创 2023-12-11 23:33:59 · 477 阅读 · 0 评论 -
97.STL-查找算法 find
如果你在一个包含自定义类型的容器中查找元素,需要确保自定义类型有相应的比较方式,通常通过重载。原创 2023-11-29 22:11:50 · 521 阅读 · 0 评论 -
96.STL-遍历算法 transform
transform是 C++ 标准模板库(STL)中的一个算法,用于对一个范围内的元素进行转换并将结果存储到另一个范围。transform。原创 2023-11-28 22:37:32 · 521 阅读 · 0 评论 -
95.STL-遍历算法 for_each
算法主要是由头文件 组成。 是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 体积很小,只包括几个在序列上面进行简单数学运算的模板函数 定义了一些模板类,用以声明函数对象。原创 2023-11-27 23:33:07 · 531 阅读 · 0 评论 -
93.STL-系统内置仿函数
目录 算术仿函数关系仿函数 逻辑仿函数 C++ 标准库中提供了一些内置的函数对象,也称为仿函数,它们通常位于 头文件中。以下是一些常见的系统内置仿函数: 写在最后:以上就是本篇文章的内容了,感谢你的阅读。如果感到有所收获的话可以给博主点一个赞哦。如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~原创 2023-11-22 22:41:03 · 290 阅读 · 0 评论 -
90.STL-谓词的使用
在C++中,谓词(Predicate)是指一种能够判断某个条件是否满足的可调用对象,通常是函数或者函数对象。谓词通常用于算法中,用于指定某种条件或规则,例如在排序、查找、删除等算法中指定元素的判定规则。概念:返回bool类型的仿函数称为谓词如果operator()接受一个参数,那么叫做一元谓词如果operator()接受两个参数,那么叫做二元谓词。原创 2023-11-15 20:46:28 · 196 阅读 · 0 评论 -
89.STL-函数对象的使用(仿函数)
函数对象是C++中的一种编程概念,也称为函数符或仿函数。其实就是重载“()”操作符,使得类对象可以像函数那样调用。 3.代码示例 写在最后:以上就是本篇文章的内容了,感谢你的阅读。如果感到有所收获的话可以给博主点一个赞哦。如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~原创 2023-11-12 22:43:58 · 200 阅读 · 0 评论 -
81.C++ STL map/ multimap容器
【代码】81.C++ STL map/ multimap容器。原创 2023-10-26 18:05:14 · 107 阅读 · 0 评论 -
79 C++ STL pair(对组)
是 C++ 标准库提供的一个简单但非常有用的类模板,用于存储两个不同类型的值(元素)。它通常用于需要将两个值组合在一起的情况,例如在算法和容器中。 这个示例展示了如何使用 创建包含不同数据类型的对,并如何访问它们的成员。 对于存储和传递多个值时非常有用,尤其在需要返回多个值的情况下。原创 2023-10-23 11:36:51 · 90 阅读 · 0 评论 -
78.C++ STL set/multiset容器
1.什么是set和multisetsetmultiset所有元素都会在插入时自动被排序。原创 2023-10-18 23:13:10 · 167 阅读 · 0 评论 -
76.C++ STL list容器
是 C++ 标准库提供的双向链表容器。它与 和 不同,不是连续的内存块,而是由节点组成的链表结构。这使得 在某些操作上具有优势,例如插入和删除元素,因为它们可以在常量时间内执行。 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另⼀个是存储下一个结点地址的指针域。 采用动态存储分配,不会造成内存浪原创 2023-10-17 23:48:21 · 202 阅读 · 0 评论 -
75.C++ STL queue容器
目录1.什么是queue容器2.queue的构造函数3.存取、插入、删除操作4.赋值操作5.大小操作以下是一个简单示例,演示如何使用 queue: 是 C++ 标准库提供的队列容器,它是一个容器适配器,用于管理遵循先进先出原则的元素集合。队列是一种常用的数据结构,通常用于任务排队和调度等应用。Queue是⼀种先进先出的数据结构,它有两个出口,queue容器允许从⼀端新增元素,从另⼀端移除元素。以下是一些关于 的关键特点和用法:包装其他容器: 不是一个容器本身,而是一个容器适配器,它通常包装其他容器(例如原创 2023-10-16 20:55:31 · 93 阅读 · 0 评论 -
74.C++ STL stack容器
1.什么是queuestack是 C++ 标准库中的容器适配器,它提供了一个堆栈(栈)数据结构的封装,用于管理元素的插入和移除。栈是一种后进先出的数据结构,类似于现实生活中的栈。stack是没有迭代器的:Stack所有元素的进出都必须符合”先进后出”的条件,只有stack顶端的元素,才有机会被外界取用。Stack不提供遍历功能,也不提供迭代器。原创 2023-10-15 23:10:39 · 420 阅读 · 0 评论 -
73.C++类模板
是C++中一种强大的特性,它允许创建可以适用于不同数据类型的通用类。类模板是用于生成类的模板,其中的数据类型可以在实例化时指定。类模板和函数模板的定义和使用基本是一样的,如何定义函数模板,就如何定义类模板。但是类模板与函数模板还是有点区别的:类模板不能自动推导类型。这段代码演示了使用类模板来创建具有不同数据类型的对象。类模板允许您定义两个模板参数T1和T2,其中T2默认为int类型。这样,您可以根据需要选择性地指定类型,或者使用默认类型。在main函数中,我们创建了两个不同类型的op1是一个。原创 2023-09-27 00:01:10 · 83 阅读 · 0 评论 -
71.函数模板
函数模板以template关键字开始,后面跟着尖括号(),其中包含一个或多个类型参数。a : b;如果我需要再对两个float类型的变量进⾏交换,是不是还需要再写⼀个函数呢?需要交换的变量的类型越多,我就越需要写更多的重复的函数,而且⼀旦需求变更了,交换的逻辑需要做⼀些小小的改变。那么每⼀个函数我都得修改⼀下,非常的复杂我如果能够设计⼀个通用的函数,能够把类型当作参数传递到这个函数中,就可以简化很多很多的⼯作了!这就是函数模板!// 需求:我想要设计⼀个函数,实现两个int变量的值的交换。原创 2023-09-18 23:17:29 · 85 阅读 · 0 评论 -
70.C++虚析构函数
虚析构函数是在C++中用于处理继承层次结构中的资源释放的一种技术。它在析构函数前加上virtual关键字,以允许正确地销毁派生类对象,即使通过基类指针删除派生类对象也能保证资源正确释放。2.为什么需要虚析构函数当基类指针指向一个派生类对象,并且通过该指针删除对象时,通常只会调用基类的析构函数。这可能导致派生类特有的资源(如动态分配的内存)不会得到正确释放,从而产生内存泄漏。通过将析构函数声明为虚函数,可以确保在删除派生类对象时调用派生类的析构函数,从而正确释放派生类的资源。3.虚析构函数的声明。原创 2023-09-15 23:14:06 · 117 阅读 · 0 评论 -
69.C++多继承与纯虚函数
今天进行了新的学习。原创 2023-09-14 23:36:11 · 150 阅读 · 0 评论 -
66.C++多态与虚函数
生活中的多态,是指的客观的事物在人脑中的主观体现。例如,在路上看到⼀只哈士奇,你可以看做是哈士奇,可以看做是狗,也可以看做是动物。主观意识上的类别,与客观存在的事物,存在 is a 的关系的时候,即形成了多态。在程序中,⼀个类的引用指向另外⼀个类的对象,从而产生多种形态。当⼆者存在直接或者间接的继承关系时,父类引用指向⼦类的对象,即形成多态。多态是面向对象三⼤特性之⼀,记住继承是多态的前提,如果类与类之间没有继承关系,也不会存在多态。原创 2023-09-10 00:02:17 · 269 阅读 · 0 评论 -
64.C++运算符重载
运算符重载是一种C++的特性,它允许重新定义或扩展已存在的运算符,以使其适用于用户自定义的数据类型。运算符重载使得您可以创建更直观、自然的操作符行为,从而增强代码的可读性和易用性。原创 2023-09-06 23:47:56 · 103 阅读 · 0 评论 -
63.C++ mutable关键字
【代码】63.C++ mutable关键字。原创 2023-09-02 11:56:16 · 294 阅读 · 0 评论 -
62.C++ deque容器
/新指定容器的⻓度为num,若容器变⻓,则以elem值填充新位 置,如果容器变短,则末尾超出容器⻓度的元素被删除。//在pos位置插⼊[beg,end)区间的数据,⽆返回值。//在pos位置插⼊⼀个elem元素的拷⻉,返回新数据的位置。//构造函数将[beg, end)区间中的元素拷⻉给本身。//删除[beg,end)区间的数据,返回下⼀个数据的位置。//将[beg, end)区间中的数据拷⻉赋值给本身。//删除pos位置的数据,返回下⼀个数据的位置。原创 2023-08-31 14:26:23 · 152 阅读 · 0 评论 -
59.C++ string容器
/字符串s中从pos开始的n个字符连接到字符串结尾。//把字符串s的前n个字符连接到当前字符串结尾。//char*类型字符串 赋值给当前的字符串。//从pos位置查找s的前n个字符第一次位置。//查找s最后一次出现位置,从pos开始查找。//把字符串s的前n个字符赋给当前的字符串。//查找s第一次出现位置,从pos开始查找。//从pos查找s的前n个字符最后一次位置。//替换从pos开始n个字符为字符串str。//返回由pos开始的n个字符组成的字符串。//替换从pos开始的n个字符为字符串s。原创 2023-08-20 20:28:19 · 142 阅读 · 0 评论 -
40.C++ 构造函数与析构函数
/ 默认构造函数,将value初始化为0// 带参数的构造函数,使用传入的值初始化value// 调用默认构造函数// 调用带参数的构造函数// 输出: 0// 输出: 10return 0;在上述示例中,MyClass类定义了两个构造函数:一个是默认构造函数,用于将value初始化为0;另一个是带参数的构造函数,用于接受一个参数并将其用于初始化value。在main()函数中,通过创建MyClass。原创 2023-07-19 09:39:01 · 313 阅读 · 0 评论 -
58.C++ STL标准模板库 STL概述 STL三大组件
容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器,每个组件解决了特定的编程问题。容器是用于存储和组织数据的数据结构。STL提供了多种容器,包括向量(vector)、链表(list)、双向链表(deque)、映射(map)、集合(set)等。容器的不同特点适用于不同的问题,例如,向量适合随机访问,链表适合插入和删除操作。算法是应用于容器的操作集合。STL提供了一系列通用的算法,如排序、查找、交换、合并等。这些算法适用于不同类型的容器,从而实现代码的重用。迭代器用于遍历容器中的元素。原创 2023-08-19 15:44:30 · 182 阅读 · 0 评论 -
55.C++冒泡排序和选择排序
冒泡排序每次都比较相邻的两个元素,如果它们的顺序错误,就交换它们。这样每一轮冒泡会使得一个最大(或最小)的元素“浮”到正确的位置。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。选择排序每次都从未排序的部分选择最小(或最大)的元素,然后将其放置在已排序部分的末尾。原创 2023-08-16 22:37:31 · 295 阅读 · 0 评论 -
51.C++继承
今天进行了新的学习关于c++继承的知识。原创 2023-08-12 20:52:46 · 227 阅读 · 0 评论 -
44.C++ static的用法
今天进行了新的学习。C++关于static的用法。只有.cpp文件能够被编译链接 在C++中,static。原创 2023-07-29 10:14:43 · 242 阅读 · 0 评论 -
48.C++ vector容器(模板类)
数组尽管很灵活,但使用起来还是很多不方便。为此,C++语言定义了扩展的“抽象数据类型”,放在“标准库”中。对数组功能进行扩展的一个标准库类型,就是“容器”vector。顾名思义,vector“容纳”着一堆数据对象,其实就是一组类型相同的数据对象的集合。是 C++ 标准库提供的一个动态数组容器,用于存储一系列连续的元素。原创 2023-08-06 23:37:04 · 241 阅读 · 0 评论 -
46.C++模板
今天进行了新的学习,关于c++模板的使用。模板是 C++ 中一种泛型编程的机制,允许在编写代码时使用参数化类型或参数化值。通过模板,可以编写通用的代码,以处理多种不同类型的数据,从而提高代码的复用性和灵活性。C++ 中有两种主要类型的模板:函数模板和类模板。原创 2023-08-02 19:11:03 · 129 阅读 · 0 评论 -
25.初学C++
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。原创 2023-04-24 20:27:28 · 42 阅读 · 0 评论