c++ - 获取数组中最小的列表数

标签 c++ arrays algorithm stl

我有一个列表数组 ( array<list<Client*>, 10> ),我想看看哪个列表中的项目数最少,以便我可以添加到其中。我在这里做一个小型平衡系统,当客户进来时,我想将它们添加到其他客户数量最少的 1 个或 10 个列表中,以保持列表水平。

我是否必须在这里进行冒泡排序,或者是否有一些甜蜜的 STL 方法来处理这样的事情?

最佳答案

这正是std::min_element用于:

std::array<std::list<Client*>, 10> arr;

auto it = std::min_element(arr.begin(), arr.end(), 
          [](const std::list<Client*>& a, const std::list<Client*>& b){
              return a.size() < b.size();
          });

这将为您提供一个迭代器,其中 list 的元素最少。

关于c++ - 获取数组中最小的列表数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28488494/

相关文章:

c++ - 从类型 'int&' 的临时类型 'int' 的非常量引用的无效初始化

c++ - MFC 一个父对话框,多个子对话框

字符没有被正确复制

c++ - 将字符串逐个字符作为输入,并在按回车时给出输出

c++ - 我可以使用 std::vector 作为模板参数还是必须是 std::vector<T>?

c# - 使用数组进行统计(十进制)

arrays - 如何找到一组坐标中最大的x,y坐标?

java - 货币 - 仅当小数位数超过 2 位时才舍入 double 值

c++ - 我的 C++ 合并排序程序有什么问题?

c++ - 如何使用 C 修改文本数据文件中的值