C ++ - сортировка 1-мерного массива в 2-мерный массив с числами в диапазоне - PullRequest
0 голосов
/ 11 мая 2018

Например, мой одномерный массив: {21,23,24,45,43,63,65,66}.

Выходной массив должен быть: {{21,23,24}, {45,43}, {63,65,66}}

Можно ли написать алгоритм, который сортирует массив 1-dim в массив 2-dim, где числа в подмассивах находятся вдиапазон, например, 10. И, может быть, лучше использовать векторы для этой задачи?

1 Ответ

0 голосов
/ 11 мая 2018

при условии, что вы используете карту >, вы можете сделать:

#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;
}

После этого вы можете отсортировать числа в векторах ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...