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

Составить описание класса, обеспечивающего представление матрицы произвольного размера - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Гистограмка = буутс + мап http://www.cyberforum.ru/cpp-beginners/thread619407.html
Код компилируется. Но что то не так в свитч кейс лупе... НЕ правильно считает. См. принтскрин. Поскажите плиз где я накосячил. Заранее спасибо! // #include <boost/random.hpp> // Convenience header file #include <iostream> #include <ctime> // std::time #include <boost/Random/detail/const_mod.hpp> // LCG class #include <map>
C++ Класс ostream Как можно создать класс ostream? Такое ощущение, что кроме cout ничего из этого класса создать невозможно. http://www.cyberforum.ru/cpp-beginners/thread619373.html
C++ Выводить на экран кубы первых 10 простых чисел
написать прогаммы которые выводить на экран кубы первых 10 простых чисел
Создать массив из 13 случайных чисел из отрезка от 11 до 99 C++
Создать массив из 13 случайных чисел из отрезка от 11 до 99 и вывести массив на экран
C++ Найти в массиве повторяющиеся значения http://www.cyberforum.ru/cpp-beginners/thread619341.html
Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран
C++ В массиве целых чисел найти максимально длинную возрастающую последовательность В массиве целых чисел найти максимально длинную возрастающую последовательность. подробнее

Показать сообщение отдельно
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
05.07.2012, 13:44     Составить описание класса, обеспечивающего представление матрицы произвольного размера
Делаю первое.

Добавлено через 2 часа 20 минут
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef MATRIX_H
#define MATRIX_H
 
#   include <cstdio>
#   include <cstdlib>
#   include <memory.h>
 
    template <typename T, char FMT>
    class Matrix {
        unsigned y, x;
        T** a;
    public:
        Matrix() {
            x = y = 1;
            a = (T**)malloc(sizeof(T*));
            *a = (T*)malloc(sizeof(T));
        }
 
        Matrix(unsigned _y, unsigned _x) {
            y = _y;
            x = _x;
            a = (T**)malloc(y * sizeof(T*));
            while (_y--)
                a[_y] = (T*)malloc(x * sizeof(T));
        }
 
        Matrix(const Matrix& m): Matrix(m.y, m.x) {
            memcpy(a, m.a, y * sizeof(T*));
            for (unsigned i = 0; i < y; i++)
                memcpy(a[i], m.a[i], x * sizeof(T));
        }
 
        ~Matrix() {
            while (y--)
                free(a[y]);
            free(a);
        }
 
        unsigned Y() const { return y; }
        unsigned X() const { return x; }
 
        unsigned Y(unsigned _y) {
            a = (T**)realloc(a, _y * sizeof(T*));
            if (y < _y)
                do
                    a[y++] = (T*)malloc(x * sizeof(T));
                while (y != _y);
            else if (y > _y)
                do
                    free(a[y--]);
                while (y != _y);
            return y;
        }
 
        unsigned X(unsigned _x) {
            for (unsigned i = 0; i < y; i++)
                a[i] = (T*)realloc(a[i], _x * sizeof(T));
            return x = _x;
        }
 
        T* operator[ ](unsigned y) { return a[y]; }
 
        void Print(unsigned y0, unsigned x0, unsigned y1, unsigned x1, char o = 5) const {
            char s[5], i = 2;
            s[0] = '%';
            if ((s[1] = o / 10 + '0') - '0') {
                s[2] = o % 10 + '0';
                i = 3;
            } else
                s[1] = o + '0';
            s[i] = FMT;
            s[i + 1] = '\0';
            for (unsigned i = y0, j; i < y1; i++) {
                for (j = x0; j < x1; j++)
                    printf(s, a[i][j]);
                putchar('\n');
            }
        }
 
        void Print(unsigned y1, unsigned x1, char o = 5) const { Print(0, 0, y1, x1, o); }
 
        void Print(char o = 5) const { Print(0, 0, Y(), X(), o); }
    };
 
#endif
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru