我有一个列表数组 ( 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/