查找容器中高于阈值的最大值和最小值元素
Find the max and min element above a threshold in a container
我有一个看起来像这样的容器:std::map<size_t, std::set<char>>
我想根据std::set
的大小找到高于阈值x
的绝对最大元素和最小元素。
我可以使用以下行获得最大值和最小值:
auto minMaxElements = std::minmax_element(cbegin(map), cend(map),
[](const auto &lhs, const auto &rhs){
return lhs.second.size() < rhs.second.size();
});
是否可以使用 std::minmax_element 使 min 元素高于阈值x
?
例:假设我有5
元素的std::map
。std::set
值的大小为 1, 2, 1, 10, and 5
。我将阈值设置为 1
,然后我希望 max 元素给出包含大小为 10
std::set
的迭代器,而 min 元素给出包含大小为 2
std::set
的迭代器。
您可以使用
std::find_if
来执行此操作
auto it = std::find_if(map.begin(), map.end(),
[x](const auto & l) -> bool {
return l.second.size() >= x; // >= or >, depending upon requirement
}
);
然后在您的std::minmax_element
中使用此迭代器
auto minMaxElements = std::minmax_element(it, map.end(),
[](const auto & lhs, const auto & rhs) {
return lhs.second.size() < rhs.second.size();
}
);
相关文章:
- 最大和最小 1 C++函数
- txt 文件中浮点数的最大和最小值
- 为什么我的C 代码无法计算整数的最大和最小值
- 函数读取最大和min int值,并用文本字符串返回
- 在C弦C 中收集最大和最小的数字
- 在数组C 中排序最大和最小的值
- 在数组中找到最大和最小的数字
- 查找序列中最大和最小的 2 个整数
- 在C++中使用 for 循环从用户输入中查找最大和最小整数
- 如何获得C 中向量复合物值的最大,最小和位置
- 我试图显示我输入的三个值中最大和最小的数量
- 给定有向图和商店位置,放置商店,使从任何城市到最近商店的最大距离最小化
- 我无法弄清楚如何在不使用 climits 的情况下计算最大和最小有符号数C++
- 使用 c++ 在值数组中查找最大利润(最大 - 最小值)
- 所有最接近的较小值
- 如何查找向量中元素的最大和最小索引
- C++数组从最大到最小的数字
- 程序可以在不使用数组的情况下找到5个数字中最大和最小的
- 如何用最少的比较得到3个值中的最大和最小值
- C++的平均、最大和最小赋值