
c++
文章平均质量分 81
c++
万里顾—程
我变得自信有趣,
允许别人踏入我的生活;
我睡的越来越早,
开始在乎前途和未来,
我知道那个我回来了!
展开
-
STL常用算法——算术生成算法和集合算法
fill_n()函数: 则以给定的迭代器为起始位置,将容器中指定数量(小于容器大小)的元素设置为给定的值。set_intersection()函数:求两个容器元素的交集。set_difference()函数:求两个容器元素的差集。set_union返回值是并集中最后一个元素的位置。set_union()函数:求两个容器元素的并集。fill()函数:向整个容器中填充指定的元素。目标容器开辟的空间需要从两个源容器中取小值。求交集的两个容器必须是有序的。求并集的两个容器必须是有序的。两个容器必须是有序的。原创 2022-11-01 10:29:10 · 569 阅读 · 0 评论 -
STL常用算法——拷贝和替换算法
replace_if()函数:将容器区间内所有满足条件的元素替换成指定元素。replace()函数:用新的值来替换容器内和给定值相匹配的元素。copy()函数:将源容器内指定范围的元素拷贝到目的容器中。copy_n():从源容器中复制指定个数的元素到目的容器中。swap()函数:交换两个容器中的元素。交换的容器必须是同种类型。原创 2022-10-31 17:00:15 · 527 阅读 · 0 评论 -
STL常用算法——排序算法
合并排序,merge() 函数用于将 2 个有序序列合并为 1 个有序容器,前提是这 2 个有序容器的排序规则相同(要么都是升序,要么都是降序)。并且最终借助该函数获得的新有序容器,其排序规则也和这 2 个有序容器要相同。sort() 函数在对自定义的类对象实现排序时,需要在该类的内部提供移动构造函数和移动赋值运算符。sort():对容器或普通数组中范围内的元素进行排序,默认进行升序排序,也可以自定义排序规则。reverse()函数:将容器指定范围内的元素进行反转。函数原型:该函数有以下两种格式。原创 2022-10-31 15:20:01 · 1455 阅读 · 0 评论 -
STL常用算法——查找算法
find() 函数会返回一个输入迭代器,当 find() 函数查找到目标元素时,其指向查找到的第一个目标元素位置迭代器;adjacent_find()函数会返回一个迭代器,当查找成功时,该迭代器指向的是连续相等元素的第 1 个元素;和find() 函数不同的是,find() 函数需要明确指定要查找的元素的值,而find_if() 允许自定义条件来查找元素。find_if_not() 函数和 find_if() 函数的功能恰好相反,用于查找第一个不符合查找规则的目标元素。函数原型:该函数有以下两种语法格式。原创 2022-10-31 11:15:10 · 690 阅读 · 0 评论 -
STL常用算法——遍历算法
ransform() 可以将函数应用到容器的元素上,并将这个函数返回的值保存到另一个容器中,它返回的迭代器指向输出容器所保存的最后一个元素的下一个位置。for_each:遍历容器,对容器中的每一个元素调用函数或函数对象。原创 2022-10-28 16:57:45 · 528 阅读 · 0 评论 -
STL常用容器——map容器的使用
map容器是存储pair 类型键值对( pair 类模板创建的 pair 对象)的关联式容器。pair 键值对(pair):键值对中第一个元素为key(键),起查找作用,第二个元素为value(值)。使用 map 容器存储的各个键值对,键的值既不能重复也不能被修改。在使用 map 容器存储多个键值对时,默认情况下会自动根据各键值对的键的大小,对所有键值对做升序排序。原创 2022-10-25 16:29:18 · 2717 阅读 · 0 评论 -
STL常用容器——set容器的使用
set容器底层结构是用二叉树实现的。set容器会自动根据键的大小对存储的键值对进行排序,根据 key 排序,也就等价为根据 value 排序。set 容器中每个键都是唯一的,可以插入或删除但不能修改,因为修改很有可能破坏 set 容器中元素的有序性。最正确的修改 set 容器中元素值的做法是:先删除该元素,然后再添加一个修改后的元素。原创 2022-10-24 17:24:34 · 2655 阅读 · 1 评论 -
STL常用容器—— list 容器的使用
list容器简介list 容器:又称双向链表容器,该容器的底层是以双向链表的形式实现的,因此可以高效地进行元素的插入和删除操作。双向链表可以将链表里的元素存储在不同且不相关的内存位置,所以list 容器中的元素可以是分散存储在内存空间里的,而不是必须存储在一整块连续的内存空间中。在双向链表的任何位置插入或删除元素时间复杂度为都为O(1);list 容器移动元素的效率也比其它容器高。list容器底层实现。原创 2022-10-21 15:58:31 · 1530 阅读 · 0 评论 -
STL常用容器——queue容器的使用
queue容器简介queue是一种先进先出(FIFO)的数据结构,因此queue容器又称队列容器。queue容器有 2 个开口,其中一个开口专门用来输入元素,另一个专门用来输出元素。队列中只有队头和队尾才可以被外界使用,只能在队列容器的末尾添加新元素,只能从头部移除元素。队列中进数据称为 — 入队 push。队列中出数据称为 — 出队 pop。queue容器特点queue容器内的元素进出都必须符合 “先进先出” 的策略。原创 2022-10-20 16:26:27 · 1209 阅读 · 4 评论 -
STL常用容器——stack容器的使用
stack容器简介stack容器是堆栈容器,该容器具有先进后出的特性;使用stack容器需要引入头文件;stack容器只允许在容器的栈顶进行插入或删除操作;stack容器不允许有遍历行为,也不提供迭代器;有元素入栈的操作称为:push;将元素出栈的操作称为:pop栈的相关概念栈顶(Top):栈允许进行插入和删除操作的一端;栈底(Bottom):栈固定并且不允许进行插入和删除操作的一端;空栈:不含有任何元素的空栈。原创 2022-10-19 17:49:54 · 794 阅读 · 1 评论 -
STL常用容器——deque容器的使用
deque容器介绍deque(double-ended queue):双端队列容器。deque 容器适用于在序列头部和尾部添加或删除元素(时间复杂度为O(1)),而不适用于在序列中间添加或删除元素,当需要向序列两端频繁的添加或删除元素时,使用 deque 容器效率高。deque 容器也可以根据需要修改自身的容量和大小。deque 容器中存储元素并不能保证所有元素都存储到连续的内存空间中。deque容器和vector容器的区别。原创 2022-10-19 16:26:12 · 822 阅读 · 0 评论 -
STL常用容器——vector容器的使用
重新指定容器的长度为num,若容器长度变长,则以elem值填充新位置;如果容器长度变短,则超出容器长度的末尾元素要被删除。vector 实现的是一个动态数组,可以动态扩展,即可以进行元素的插入和删除,在此过程中,vector 会动态调整所占用的内存空间。将v[begin(),end())区间中的元素拷贝给本身。原创 2022-10-07 16:12:58 · 1043 阅读 · 1 评论 -
STL常用容器——String容器的使用
替换从pos开始的n个字符为字符串s。原创 2022-09-30 10:40:35 · 496 阅读 · 0 评论 -
STL技术——STL概述和入门
STL介绍STL( standard template library),译为标准模板库或者泛型库,是 C++ 提供的一个基础模板的集合。STL 已完全被内置到支持 C++ 的编译器中,不用另外安装。STL广义上可以分为:容器container(本质上就是封装有数据结构的模板类)、算法algorithm、迭代器iterator;容器和算法之间通过迭代器无缝连接。原创 2022-09-29 11:24:42 · 4609 阅读 · 2 评论 -
C++核心编程
c++程序执行时将内存大致分为4个区域c++内存模型图如下:代码区特点共享的:对于频繁执行的程序,在内存中只要有一份代码即可只读的:防止系统意外修改它的指令全局区特点该区域的数据,在程序结束后由操作系统释放栈区特点由编译器自动编译释放,存放函数的参数值,局部变量等注意事项:栈区编译的数据执行完后由编译器自动释放,不要返回局部变量的地址堆区特点由程序员分配释放,若程序员不释放,程序结束时由操作系统回收在c++中主要通过new关键字在堆区开辟内存new 和delete关键字。原创 2022-09-23 14:44:15 · 2114 阅读 · 0 评论 -
C++基础入门
变量和常量,关键字,数据类型,流程控制,数组,函数,指针,结构体原创 2022-09-01 11:46:17 · 534 阅读 · 1 评论