Как найти максимальное и минимальное значения значений столбцов в двумерном массиве с использованием алгоритмов STL - PullRequest
2 голосов
/ 15 мая 2011

У меня есть 2D-массив (вектор вектора целых) со значениями типа int, такими как эти

34  19  89  45
21  34  67  32
87  12  23  18

Я хочу найти максимальное и минимальное значение для значений столбцов (не значений строк)) желательно с использованием алгоритмов STL

std::max_element, std::min_element

1 Ответ

6 голосов
/ 15 мая 2011

Создайте пользовательский функтор, который сравнивает определенный номер столбца, например ::

struct column_comparer
{
    int column_num;
    column_comparer(int c) : column_num(c) {}

    bool operator()(const std::vector<int> & lhs, const std::vector<int> & rhs) const
    {
        return lhs[column_num] < rhs[column_num];
    }
};

...

std::vector<std::vector<int>> v;
...
... // fill it with data
...
int column_num = 3;
int n = (*std::max_element(v.begin(), v.end(), column_comparer(column_num)))[column_num];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...