华为OD机试 - 输入整型数组和排序标识,对其元素按照升序或降序进行排序(Python/JS/C/C++ 牛客练习题)

在这里插入图片描述

2025华为OD机试题库(按算法分类):2025华为OD统一考试题库清单(持续收录中)以及考点说明(Python/JS/C/C++)

专栏导读

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。

一、题目描述

输入整型数组和排序标识,对其元素按照升序或降序进行排序

数据范围: 1≤n≤1000 ,元素大小满足 0≤val≤100000 。

二、输入描述

  1. 第一行输入数组元素个数;
  2. 第二行输入待排序的数组,每个数用
### 遍历 C++ 中 `std::map` 的方法 在 C++ 中,可以通过多种方式来遍历 `std::map` 容器的内容。以下是常见的两种遍历方式:正序遍历倒序遍历。 #### 正序遍历 通过迭代器可以实现对 `std::map` 的正序遍历。下面是一个具体的代码示例: ```cpp #include <iostream> #include <map> #include <string> int main() { // 创建并初始化一个 std::map std::map<std::uint32_t, std::string> myMap; myMap[1] = "Apple"; myMap[2] = "Banana"; myMap[3] = "Cherry"; // 使用基于范围的 for 循环进行正序遍历 for (const auto& pair : myMap) { std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl; } // 者使用传统迭代器方式进行正序遍历 for (auto it = myMap.begin(); it != myMap.end(); ++it) { std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl; } return 0; } ``` 上述代码展示了如何利用基于范围的 `for` 循环以及传统的迭代器来进行正序遍历[^2]。 #### 倒序遍历 如果需要按照键值降序的方式遍历 `std::map`,则可以借助反向迭代器完成此操作。下面是相应的代码实例: ```cpp #include <iostream> #include <map> #include <string> int main() { // 创建并初始化一个 std::map std::map<std::uint32_t, std::string> myMap; myMap[1] = "Apple"; myMap[2] = "Banana"; myMap[3] = "Cherry"; // 使用反向迭代器进行倒序遍历 for (auto rit = myMap.rbegin(); rit != myMap.rend(); ++rit) { std::cout << "Key: " << rit->first << ", Value: " << rit->second << std::endl; } return 0; } ``` 这段代码说明了如何运用反向迭代器执行倒序遍历。 ### 总结 对于 `std::map` 而言,其内部实现了红黑树结构,默认按键值升序排列元素。因此,在实际应用中可以根据需求选择合适的遍历方式以满足特定场景下的功能要求[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值