我的一维数组例如:{21,23,24,45,43,63,65,66}。
输出数组应为:{{21,23,24},{45,43},{63,65,66}}
是否有可能编写一种算法,在1-dim数组中对1-dim数组进行排序,其中子数组中的数字在例如10的范围内。对于该问题,使用向量可能更好吗? / p>
答案 0 :(得分:1)
假设您使用地图< int,vector< int>>你可以这样做:
#include <map>
#include <vector>
using bucket = std::map<int, std::vector<int>>;
bucket ToBucket(const std::vector<int>& input)
{
bucket res;
for (const auto& i : input)
{
res[i/10].push_back(i);
}
return res;
}
之后你可以对矢量中的数字进行排序......