C++ STL竟然有这么多个版本 自1998年ANSI/ISO C++标准正式确立,STL成为C++标准库的必备组件后,由于其开源特性与标准化接口,各大编译器厂商与开源社区纷纷基于标准规范,开发了各具特色的STL实现版本。这些实现均在遵循标准接口的前提下,针对性能、可移植性或特定平台进行了优化,其中具有代表性的包括HP STL、SGI STL、STLport、P.J. Plauger主导的PJ STL以及Rouge Wave ST STL基础 2025年10月01日 1 点赞 0 评论 363 浏览
C++ STL排列组合算法std::next_permutation()函数入门 前面一节我们学习了比较算法lexicographical_compare()函数,读者是否还记得它的功能是什么吗?没错,它能让我们的序列实现字典序比较行为。本节我们将学习排列组合算法——next_permutation()函数。“next”表示“下一个”,“permutation”表示“置换”,这里next_permutation()函数的功能将序列按照"字典顺序"重新排列成下 C++常用算法(二) 2025年10月25日 0 点赞 0 评论 278 浏览
C++STL之List容器 C++STL之List容器1.再谈链表List链表的概念再度出现了,作为线性表的一员,C++的STL提供了快速进行构建的方法,为此,在前文的基础上通过STL进行直接使用,这对于程序设计中快速构建原型是相当有必要的,这里的STL…… C++STL库教程(附带题库) 2022年01月24日 136 点赞 0 评论 111629 浏览
C++ STL 迭代器辅助函数prev(it , n)和next(it , n)入门 本节我们将继续进行迭代器函数的学习,由于next(it , n)和prev(it , n)功能上极为”相似“,所以笔者进行统一讲解。这里it参数指的是迭代器,n可为'+'、'-',需要根据容器进行选择(比如你总不会使用forward_list容器来进行后退操作),函数会返回将'it'进行'n'次移动操作后的迭代器。具体通过代码来展示: STL迭代器适配器 2025年10月20日 0 点赞 0 评论 223 浏览
C++ STL vector<bool> - STL容器的败笔! vector,被称为“最好的数组”,凭借其动态扩展能力和丰富的成员函数深受c++程序员和算竟选手喜爱,大家对此深信不疑。有一天,你听到个消息说:vector<bool>不是STL容器!此时,大家心里恍如晴天霹雳:要知道vector是世界上最好的序列式容器,谁敢在此质疑vector的完美设计?起初,笔者也同大家一样感到莫名其妙,迅速打开dev,创建vector<bool>看看 STL序列式容器 2025年10月04日 1 点赞 0 评论 355 浏览
深入学习C++ STL map容器的成员函数emplace_hint() 前面我们简单提到过emplace_hint()这个插入函数,在能够巧用迭代器的情况下就能实现map高效插入元素。emplace_hint(hint,key,val)有3各参数,第一个是位置迭代器hint,第二个是key键值,第三个是val值。它的返回值为:如果成功插入返回插入元素对应的迭代器,否则返回hint。如何巧用迭代器?大多数情况下emplace_hint()都是进行批量元素插入。比如我要插 STL有序关联式容器 2025年10月08日 0 点赞 0 评论 256 浏览
深入学习C++ STL vector容器的迭代器 在《什么是迭代器?》里我们就粗略地介绍了迭代器,现在,我们将会进行vector迭代器的深入学习,包括认识和实际操作迭代器。vector里的迭代器很简单!先说一下begin()、end(),这两个被称为正向迭代器;rbegin()、rend()被称为反向迭代器,这里r意思是reverse,反转的意思;还有cbegin()、cend()、crbegin()、crend(),这里c指的是const,意为 STL序列式容器 2025年10月02日 0 点赞 0 评论 340 浏览
C++ STL移除算法std::remove()函数入门 前面一节我们学习了区间交换算法swap_ranges()函数,读者是否还记得它的功能是什么吗?没错,该函数能够高效地交换两个同类型且等长的区间。本节我们将学习一个新的算法——移除算法,顾名思义,移除算法指的是快速移动同目标元素相等的元素到非相等元素区间,注意“移除”并非删除,想要实现删除效果需要配合erase()函数才行。remove()函数就是一个重要的移除函数,”remove“的意思是”移除“ C++常用算法(二) 2025年10月27日 0 点赞 0 评论 253 浏览
C++ STL序列查找算法std::find_end()函数入门 前面我们学习的查找算法都是单个元素进行查找,本节我们学习一个按序列进行查找的算法——find_end()。find_end(first1,last1,first2,last2)的功能是在主序列[first1,last1)中寻找最后一次出现的子序列[first2,last2),如果找到就返回最后一次出现在主序列中的子序列的起始迭代器;如果找不到就主序列的last1迭代器。举个例子,主序列是{' C++常用算法(一) 2025年10月23日 0 点赞 0 评论 231 浏览
C++ STL容器该如何选择? 到目前为止,我们已经把所有容器全部学习完毕!包括:序列式容器:array容器、vector容器、deque容器、list容器、forward_list容器。有序关联式容器:map容器、set容器、multimap容器、multiset容器。无序关联式容器:unordered_map容器、unordered_multimap容器、unordered_set容器、unorder STL无序关联式容器 2025年10月16日 1 点赞 0 评论 242 浏览