Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Сортировка строк матрицы в порядке возрастания их средних арифметических значений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить выпуклый ли многоугольник. http://www.cyberforum.ru/cpp-beginners/thread1176144.html
Задан многоугольник координатами в порядке обхода. Определить выпуклый ли он ? как сделать иначе не проверяя угол ? Хочется сделать не пользуясь библиотекой <math.h> Опять , откуда пойдет...
C++ Написать функцию перевода из 10-й сс в 16-ую Помогите,пожалуйста,написать функцию перевода из 10 в 16-ую по такому принципу,с 2 и 8-ой справился,а вот с 16-ой не получается. Как я понимаю,надо подключить буквы в 16-ой,но не знаю как ... http://www.cyberforum.ru/cpp-beginners/thread1176143.html
C++ Удаление структуры по определенному полю.
Я сделал удаление элемента после заданного. Например я ввожу значение, если оно совпадает с колличеством, то следующая запись удаляется. #include <stdio.h> #include <string.h> #include...
Сформировать массив из средних арифметических отрицательных эле-ментов четных столбцов матрицы C++
2-Сформировать одномерный массив, состоящий из среднего арифметического отрицательных эле-ментов, располагающихся в каждом четном столбце матрицы X (n x m).
C++ Шаблонный класс vector. Найти объекты с названием, начинающимся на символ и со значением больше value http://www.cyberforum.ru/cpp-beginners/thread1176127.html
С помощью класса vector создан массив объектов CFruit. char* name = {"Apple", "Kiwi", "Lemon", "Grapes", "Lime", "Melon", "Banana"}; char* color = {"Red", "Red", "Yellow", "Blue", "Green",...
C++ почему не видет switch? #include <iostream> #include<conio.h> #include<stdio.h> using namespace std; int menu(); подробнее

Показать сообщение отдельно
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
20.05.2014, 01:49
Кротяка,
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <vector>
#include <memory>
#include <algorithm>
#include <iterator>
 
class matrix {
public:
    matrix(const size_t& width = 2, const size_t& height = 2) 
        : rows(height), cols(width) 
    {
        array = new int*[rows];
        for (size_t i = 0; i < rows; ++i) {
            array[i] = new int[cols];
            std::generate(array[i], array[i] + cols, 
                [](){ return rand() % 100; });
        }
    }
    
    void set(const size_t& row, const size_t& col, const int& value) {
        array[row][col] = value;
    }
    
    int& get(const size_t& row, const size_t& col) const { return array[row][col]; }
    
    const size_t& getRows() const { return rows; }
    
    const size_t& getCols() const { return cols; }
    
    void sortByAverangeValue() {
        int* sums = new int[rows];
        for (size_t i = 0; i < rows; ++i) {
            sums[i] = std::accumulate(array[i], array[i] + cols, 0);
        }
        
        std::sort(array, array + rows, [&](int* a, int* b) {
            size_t i = std::distance(array[1], a),
                j = std::distance(array[1], b);
            return sums[i] < sums[j];
        });
        
        delete sums;
    }
    
    friend std::ostream& operator<< (std::ostream& out, const matrix& m) {
        for (size_t i = 0; i < m.rows; ++i) {
            for (size_t j = 0; j < m.cols; ++j)
                out << m.array[i][j] << ' ';
            out << std::endl;
        }
        
        return out;
    }
    
private:
    const size_t rows, cols;
    int** array;
};
 
int main () {
    matrix m(2, 4);
    std::cout << "Before\n" << m;
    m.sortByAverangeValue();
    std::cout << "After\n" << m;
}

Сортировка не работает. Если кто скажет почему поставлю +1.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru