C++ STL 容器中优先级搜索的优雅方法
C++ elegant way for prioritized search in STL container
我写了一个小函数,其目的是按顺序浏览元素列表,对它的哈希图值进行一些检查,如果它们通过,则返回它。
QString ElementContainer::getPreferedAvailableElement() const
{
QStringList preferred_priority = { A, B, C, D, E };
foreach(QString element, preferred_priority){
Element* data = m_hashmap.value(element, nullptr);
if(data && data->isReady()){
return element;
}
}
return QString("");
}
我知道,无论是否有意义,都不应该强迫这些功能的性病功能。我只是好奇你如何改变它,如果它可能更冗长。
你可以像这样使用std::find_if
:
QString ElementContainer::getPreferedAvailableElement() const
{
QStringList preferred_priority = { A, B, C, D, E };
auto it = std::find_if(preferred_priority.begin(),
preferred_priority.end(),
[this](const QString & element)
{
Element* data = m_hashmap.value(element, nullptr);
return (data && data->isReady());
});
if (it != preferred_priority.end())
{
return *it;
}
return QString("");
}
相关文章:
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- C++ STL 容器中优先级搜索的优雅方法
- 是否有一种有效的方法来搜索队列中的关键字并覆盖其值
- 这是在传递 int num 时创建搜索函数的正确方法吗?使用链表库
- 删除节点方法实际上不会删除二叉搜索树中的节点.C++
- 从另一个向量中搜索和找到元素的有效方法
- 比较数据库搜索方法
- 双向链表插入方法实现 - 正在搜索哪个节点
- 搜索字符串是否至少包含一次从 0 到 9 的所有数字的最有效方法
- 在排序静态数组中搜索的最快方法
- 从基于矢量的二叉搜索树中删除节点的最佳方法
- 这是哨兵线性搜索的错误方法吗?
- C - 搜索地图中具有相同值的所有键的最快方法是什么
- 一半填充二进制搜索树进行测试的最佳方法
- 在C++中搜索地址表的最快方法
- 超快速搜索整数子字符串的方法
- 为什么这种搜索方法不可扩展
- 在 C++ 中,在矩阵中搜索最小值和最大值以及不同行或列的最快方法是什么
- 在 c++ 中搜索集合的最有效方法是什么
- 在结构向量中搜索特定ID的有效方法