将std::集合分割为大小相等的向量

Split an std::set into vectors of equal size

本文关键字:向量 std 集合 分割      更新时间:2023-10-16

我有一个std::整数集合,假设有550个元素。我想把它分成大小小于等于100的向量。在这种情况下,我们总共会得到6个向量。前5个向量的大小为100,第六个向量的大小为50。

所以,实际上我需要将std::setmasterSet分解为std::vector>final。是否有一个好的和清晰的方法来做它使用一些标准的std算法。我不需要一个类来实现这个逻辑,事实上我可以写一个函数来实现。

嗯…我猜你可以按这个顺序来做:

std::vector<vector<int>> ints(myset.size()/max_size);
size_t i = 0;
for (auto d : my_set) 
    ints[i++/max_size].push_back(d);