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

Создания матрицы через класс - C++

Восстановить пароль Регистрация
 
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
13.04.2013, 17:46     Создания матрицы через класс #1
Люди у кого есть пример реализации матрицы через класс дайте пожалуйста , желательно что бы там был конструктор копирования , а так все остальное я сам решу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 17:46     Создания матрицы через класс
Посмотрите здесь:

класс матрицы М. C++
C++ игра через класс на С++
C++ Стек через класс
C++ Описать класс «файл», содержащий сведения об имени, дате создания и длине файла
класс для создания календаря C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
13.04.2013, 17:50     Создания матрицы через класс #2
Поищите по форуму - примеров масса
Класс матрица
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.04.2013, 18:04     Создания матрицы через класс #3
Когда то писал такое: Class matrix
Но можно и по проще:
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
template<typename T>
class matrix
{
    int m_rows, m_cols, m_size;
    T** m_matrix;
public:
    typedef T*          iterator;
    typedef const T*    const_iterator;
    iterator        begin()         {return m_matrix[0];}
    iterator        end()           {return m_matrix[0]+m_size;}
    const_iterator  begin() const   {return m_matrix[0];}
    const_iterator  end()   const   {return m_matrix[0]+m_size;}
 
    size_t size() const {return m_size;}
 
    const T* operator[](const int index) const {return m_matrix[index];}
    T* operator[](const int index) {return m_matrix[index];}
    
    explicit matrix(const int rows = 0, const int cols = 0): m_rows(rows), m_cols(cols), m_size(rows*cols)
    {
        if (m_rows <= 0 || m_cols <= 0)
            m_matrix = nullptr;
        m_matrix = new T*[m_rows];
        m_matrix[0] = new T[m_size];
        for (size_t i = 1; i<m_rows; ++i)
            m_matrix[i] = m_matrix[i-1]+m_cols;
    }
    
    ~matrix()
    {
        if (m_matrix)
        {
            delete[] m_matrix[0];
            delete m_matrix;
        }
        else
            delete[] m_matrix;
    }
    
    void print(const int length = 3) const
    {
        for (size_t i = 0; i<m_rows; ++i)
        {
            for (size_t j = 0; j<m_cols; ++j) std::cout<<std::setw(length)<<m_matrix[i][j]<<" ";
            std::cout<<"\n";
        }
    }
};
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
13.04.2013, 18:06  [ТС]     Создания матрицы через класс #4
мне без шаблонов
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
13.04.2013, 18:10     Создания матрицы через класс #5
AlexProg, :/
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
//template<typename T>
class matrix
{
    typedef int         T;
    
    int m_rows, m_cols, m_size;
    T** m_matrix;
public:
    typedef T*          iterator;
    typedef const T*    const_iterator;
    iterator        begin()         {return m_matrix[0];}
    iterator        end()           {return m_matrix[0]+m_size;}
    const_iterator  begin() const   {return m_matrix[0];}
    const_iterator  end()   const   {return m_matrix[0]+m_size;}
 
    size_t size() const {return m_size;}
 
    const T* operator[](const int index) const {return m_matrix[index];}
    T* operator[](const int index) {return m_matrix[index];}
    
    explicit matrix(const int rows = 0, const int cols = 0): m_rows(rows), m_cols(cols), m_size(rows*cols)
    {
        if (m_rows <= 0 || m_cols <= 0)
            m_matrix = nullptr;
        m_matrix = new T*[m_rows];
        m_matrix[0] = new T[m_size];
        for (size_t i = 1; i<m_rows; ++i)
            m_matrix[i] = m_matrix[i-1]+m_cols;
    }
    
    ~matrix()
    {
        if (m_matrix)
        {
            delete[] m_matrix[0];
            delete m_matrix;
        }
        else
            delete[] m_matrix;
    }
    
    void print(const int length = 3) const
    {
        for (size_t i = 0; i<m_rows; ++i)
        {
            for (size_t j = 0; j<m_cols; ++j) std::cout<<std::setw(length)<<m_matrix[i][j]<<" ";
            std::cout<<"\n";
        }
    }
};

Не по теме:

AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
13.04.2013, 18:27  [ТС]     Создания матрицы через класс #6
ребята я конечно вам всем очень благодарен но мне нужен самый просторй класс матрица где сама матрица не как одномерный а как двумерный массив будет представлена и заполненна
Yandex
Объявления
13.04.2013, 18:27     Создания матрицы через класс
Ответ Создать тему
Опции темы

Текущее время: 08:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru