mapintegerstring key有 1 10 14 18 22 26 30 35 39 有着数字11怎么找到小于它的最大值用代码
以下是一个用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/ixa6 著作权归作者所有。请勿转载和采集!