c++11之algorithm算法库新增is_sorted和sorted_until
2024-09-08 00:23:55
0.时刻提醒自己
Note: vector的释放
1.is_sorted
1.1 功能
检查 [first, last) 中的元素是否以不降序排序
1.2 异常
若算法无法分配内存,则抛出 std::bad_alloc
1.3 返回值
若范围中的元素已按不降序排序则为 true,否则,返回false
1.4 代码用法
// 期末成绩
int score[] = {99, 77, 30, 80, 90, 20};
// 1.排序前结果
std::cout << "排序前结果:";
for_each(std::begin(score), std::end(score), [](const int& item) {std::cout << item << " "; });
std::cout << " : is_sorted: " << std::boolalpha << std::is_sorted(std::begin(score), std::end(score)) << '\n';
// 2.执行排序
std::sort(std::begin(score), std::end(score));
// 3.排序后结果
std::cout << "排序后结果:";
for_each(std::begin(score), std::end(score), [](const int& item) {std::cout << item << " "; });
std::cout << " : is_sorted: " << std::boolalpha << std::is_sorted(std::begin(score), std::end(score)) << '\n';
1.5 输出结果
2. is_sorted_until
2.1 功能
检验范围 [first, last) ,并寻找始于 first 且其中元素已以不降序排序的最大范围。
2.2 异常
若算法无法分配内存,则抛出 std::bad_alloc
2.3 返回值
始于 first 且其中元素已以升序排序的最大范围。即满足范围 [first, it) 已排序的最后迭代器 it 。
2.4 Note
std::is_sorted_until 对空范围及长为 1 的范围均返回 last 。
2.5 用法
// 期末成绩
int score[] = {99, 77, 30, 80};
std::cout << "排序前:";
// 1.找到第一个没有按升序排列的元素
auto it = std::is_sorted_until(std::begin(score), std::end(score));
if (std::end(score) != it)
std::cout << "第一个没有升序排列的元素是:" << *it << std::endl;
else
std::cout << "数组元素全部按照升序排序\n";
// 2.执行排序
std::sort(std::begin(score), std::end(score));
// 3.再次核查数组排序情况
std::cout << "排序后:";
auto it_find = std::is_sorted_until(std::begin(score), std::end(score));
if (std::end(score) != it_find)
std::cout << "第一个没有升序排列的元素是:" << *it_find << std::endl;
else
std::cout << "数组元素全部按照升序排序\n";
2.6 输出结果
最新文章
- 用Retrofit发送请求中添加身份验证
- jquery动态添加的html,第三方插件无法生效的情况
- 常用API——日期型函数Date
- 关于placeholder中 文字添加换行 用转义字符&;#13;&;#10;代替<;br>;
- myeclipse优化
- iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换
- iOS10 UI设计基础教程
- Cygwin下载,安装教程
- Spring Data JPA教程, 第五部分: Querydsl(未翻译)
- sqrt和Hailstone
- ASP.NET实现年月日三级联动(局部刷新)
- Umbraco Content属性
- RESTful架构2--架构详解
- HDU 4010 Query on The Trees
- sql server 性能调优之 死锁排查
- spark2.4.0+hadoop2.8.3全分布式集群搭建
- MySQL插入更新_ON DUPLICATE KEY UPDATE
- Java中主类中定义方法加static和不加static的区别
- 20165336 2017-2018-2 《Java程序设计》第7周学习总结
- Codeforces Round #425 (Div. 2) Problem B Petya and Exam (Codeforces 832B) - 暴力