【C++】常用模板库的用法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

这篇文章持续更新C++中常用的模板库的用法。


一、STL(Standard Template Library)

这是 C++ 中的一套通用算法和数据结构的集合。STL 提供了多种排序算法,这些算法可以对各种容器(如数组、向量、列表等)中的元素进行排序。以下是一些常见的 STL 排序算法:
1.std::sort,这是最常用的 STL 排序算法,它对容器中的元素进行排序。默认情况下,它按照元素的值进行升序排序,但如果需要,可以提供一个自定义的比较函数来指定排序的规则。

std::vector<int> v = {4, 1, 3, 2};
std::sort(v.begin(), v.end()); // 默认升序排序

//如果想要实现降序排列,有以下几种方法
//1.传如参数great<int>
std::sort(v.begin(), v.end(), great<int>); 
//这是 STL 中的一个比较函数对象(functor),它定义了一种比较两个值的方式,使得比较结果与默认的 < 运算符相反,即它用于降序比较。

//2.也可以自己写一个返回值为bool类型的比较函数,传入到sort中
bool descending(int a, int b) {
    return a > b; // 如果 a 大于 b,则返回 true,实现降序
}
std::sort(v.begin(), v.end(), descending); 

//3.使用lambda表达式作为sort的参数
std::sort(v.begin(), v.end(), [](int a, int b) {return a > b;});
  1. std::stable_sort,该方法也对容器中的元素进行排序,但它保持了相等元素的原始相对顺序。这意味着如果有两个或多个元素在排序前是相邻的,并且在排序后仍然保持相等,那么它们在排序后也会保持相邻。
std::vector<int> v = {4, 1, 3, 2, 2};
std::stable_sort(v.begin(), v.end()); // 保持相等元素的原始顺序,输出结果是1, 2,2, 3,4;
  1. std::partial_sort,这个算法将容器的前 n 个元素排序,而不管剩余的元素。它通常用于当你只关心容器中的一部分元素的顺序时。
std::vector<int> v = {4, 1, 3, 2, 8, 7};
std::partial_sort(v.begin(), v.begin() + 3, v.end()); // 只排序前3个元素,输出1,3,4,2,8,7;
  1. std::sort_heap 和 std::make_heap,这两个算法用于堆(heap)操作。std::make_heap 将容器中的元素构造成一个堆,而 std::sort_heap 则对堆进行排序,使得堆的性质得以保持。
td::vector<int> v = {4, 1, 3, 2};
std::make_heap(v.begin(), v.end());
std::sort_heap(v.begin(), v.end()); // 将堆排序

5.集合操作

std::vector<int> v = {4, 1, 3, 2};
std::set_intersection, std::set_union, std::set_difference, std::set_symmetric_difference:
//这些算法用于集合操作,它们分别实现集合的交集、并集、差集和对称差集。
  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值