C++ map 中查找小于给定数字的最大键值
以下是一个用 C++ 语言实现的示例代码,用于找到小于给定数字 11 的最大键值:
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = 'A';
myMap[10] = 'B';
myMap[14] = 'C';
myMap[18] = 'D';
myMap[22] = 'E';
myMap[26] = 'F';
myMap[30] = 'G';
myMap[35] = 'H';
myMap[39] = 'I';
int target = 11;
int maxKey = -1;
for (const auto& pair : myMap) {
if (pair.first < target && pair.first > maxKey) {
maxKey = pair.first;
}
}
if (maxKey != -1) {
std::cout << 'The maximum key less than ' << target << ' is ' << maxKey << std::endl;
} else {
std::cout << 'No key found less than ' << target << std::endl;
}
return 0;
}
这段代码首先创建了一个 std::map 对象 myMap,其中包含了给定的键值对。然后,它使用一个循环遍历 myMap 中的所有键值对。在循环中,它检查每个键是否小于给定目标值 11,并且是否大于已找到的最大键值。如果是,则更新 maxKey 为当前键值。最后,它输出找到的最大键值。
运行此示例代码将输出:
The maximum key less than 11 is 10
原文地址: https://www.cveoy.top/t/topic/qevy 著作权归作者所有。请勿转载和采集!