C++ 算法 stable_sort()2024年8月30日 | 5分钟阅读 C++ 算法 stable_sort() 函数用于将范围 [first, last) 中的元素按升序排序,与 sort 类似,但保持等价元素的相对顺序。 第一个版本使用运算符 < 比较元素,第二个版本使用 comp 比较元素。 语法参数first:一个双向迭代器,指向要排序范围中的第一个元素。 last:一个双向迭代器,指向要排序范围中最后一个元素的后一个位置。 comp:一个用户定义的二元谓词函数,接受两个参数,如果这两个参数有序则返回 true,否则返回 false。它遵循严格弱序来对元素进行排序。 返回值无 复杂度运行时复杂度取决于可用内存量。 如果有足够的额外内存可用,则复杂度与 first 和 last 之间的距离呈线性关系。执行的元素比较次数最多为 N*log2(N),其中 N = last - first。 如果没有额外内存可用,则复杂度与 first 和 last 之间的距离呈多线性关系。执行的元素比较次数最多为 N*log22(N),其中 N = last - first。 数据竞争范围 [first, last) 中的对象被修改。 异常如果任何元素比较、元素交换或迭代器操作抛出异常,此函数将抛出异常。 请注意,无效参数会导致未定义行为。示例 1让我们看一个简单的例子来演示 stable_sort() 的用法 输出 Before sorting: 3 1 4 2 5 After sorting: 1 2 3 4 5 示例 2让我们看另一个简单示例 输出 Age : Name ----------- 23 : Bob 58 : Robin 60 : Devid 示例 3让我们看另一个简单示例 输出 Stable Sort by name Name Sec Group ------------------------- Aman 3 B Anjali 3 A Bob 4 C Chinu 3 A Deep 4 B Faizal 3 A Nikita 1 A Rohit 2 A Stable Sort by section Name Sec Group ------------------------- Nikita 1 A Rohit 2 A Aman 3 B Anjali 3 A Chinu 3 A Faizal 3 A Bob 4 C Deep 4 B 示例 4让我们看另一个简单示例 输出 Original vector v1 = ( 0 2 4 6 8 10 0 2 4 6 8 10 ) Sorted vector v1 = ( 0 0 2 2 4 4 6 6 8 8 10 10 ) Resorted (greater) vector v1 = ( 10 10 8 8 6 6 4 4 2 2 0 0 ) Resorted (UDgreater) vector v1 = ( 10 10 8 8 6 6 4 4 2 2 0 0 ) 下一主题C++ 算法 |
C++ 算法函数 count() C++ 算法 count() 函数接受 'val' 作为参数,并比较元素 'val' 在范围内的出现次数。返回该元素的出现次数。语法模板 <class InputIterator, class T> typename iterator_traits<InputIterator>::difference_type count (InputIterator first, InputIterator last, const T& val); 参数 first: 它是一个...
阅读1分钟
C++ 算法 sort() C++ 算法 sort() 函数用于将范围 [first, last) 中的元素按升序排序。第一个版本使用 operator < 比较元素,第二个版本使用 comp 比较元素。语法 默认 (1) template <class RandomAccessIterator> void sort (RandomAccessIterator first, RandomAccessIterator last); 自定义...
5 分钟阅读
介绍:在动态的编程领域,充分利用硬件资源是关键。多线程,即多个线程同时执行,在实现并行性和提升性能方面发挥着至关重要的作用。C++作为一种通用的编程语言,提供了...
7 分钟阅读
C++ 算法函数 all_of() C++ 算法 all_of() 函数在 'pred' 参数的值为 true 时返回 true。该值对于范围 [first, last] 中的所有元素都应为 true。语法模板 <class InputIterator, class UnaryPredicate> bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred); 参数 first: 它指定了...
阅读1分钟
C++ 算法函数 any_of() C++ 算法 any_of() 函数测试范围中每个元素的 'pred' 值,如果任何元素的 pred 值为 true,则函数返回 true,否则返回 false。语法模板 <class InputIteratir, class UnaryPredicate> bool any_of (InputIterator first, InputIterator last, UnaryPredicate...
阅读1分钟
C++ 算法函数 find_first_of() C++ 算法 find_first_of() 函数比较两个容器 [first1, last1) 和 [first2, last2) 中存储的值。如果在 [first1, last1) 中找到与 [first2, last2) 范围中元素相似的元素,则返回指向该元素的迭代器...
阅读 2 分钟
C++ 算法函数 find_end () C++ 算法 find_end() 函数在容器中搜索模式的最后一次出现,或者说在容器中搜索序列小部分的最后一次出现。它基本上搜索 [first1,last1) 指定的范围以查找序列的出现,该序列...
阅读 2 分钟
C++ 算法 generate_n() C++ 算法 generate_n() 函数用于将由函数对象生成的值分配给范围内指定数量的元素,并返回到最后一个分配值位置之后的一个位置。生成器函数由...
阅读 3 分钟
C++ 算法 reverse_copy() C++ 算法 reverse_copy() 函数用于将范围 [first, last) 中的元素以相反的顺序复制到从 result 开始的另一个范围。语法模板 <class BidirectionalIterator, class OutputIterator> OutputIterator reverse_copy (BidirectionalIterator first, BidirectionalIterator last, OutputIterator result); 注意:...
阅读 4 分钟
C++ 算法 set_union() C++ 算法 set_union() 函数用于查找两个已排序范围 [first1, last1) 和 [first2, last2) 的并集,该并集由存在于其中一个集合或两个集合中的元素组成。元素使用运算符 < 进行比较...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India