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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
#1

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

13.04.2013, 17:46. Просмотров 349. Ответов 5
Метки нет (Все метки)

Люди у кого есть пример реализации матрицы через класс дайте пожалуйста , желательно что бы там был конструктор копирования , а так все остальное я сам решу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создания матрицы через класс (C++):

Класс: как обратиться к методу производного класса через итератор на базовый класс? - C++
Есть абстрактный и два порожденных. Хочу создать например list<Base*> list1; затем добавляю себе в список: ...

класс для создания календаря - C++
помогите пожалуйста создать класс для определения дня недели по календарной дате. Дата – три целых числа: число, месяц, год. Диапазон дат –...

Как убрать возможность создания указателя на класс - C++
Есть абстрактный класс А и класс Б, который содержит список(vector) указателей на класс А. Как сделать чтобы кроме класса Б, нигде нельзя...

Описать класс «файл», содержащий сведения об имени, дате создания и длине файла - C++
Описать класс «файл», содержащий сведения об имени, дате создания и длине файла. Предусмотреть инициализацию с проверкой допустимости...

Шаблонный класс матрицы. Проверка матрицы на пустоту - C++
Есть задание (приложил картинку - zadanie.png) Вот что уже скодил: massive.h #ifndef MASSIVE_H #define MASSIVE_H #include...

Способы создания динамической квадратичной матрицы вида matrix[N][N] - C++
1) Самый первый способ: Создание одного длинного одномерного массива (1 выделение (new)). Но здесь идёт работа с матрицей как с...

5
Croessmah
Эксперт CЭксперт С++
13508 / 7666 / 866
Регистрация: 27.09.2012
Сообщений: 18,863
Записей в блоге: 3
Завершенные тесты: 1
13.04.2013, 17:50 #2
Поищите по форуму - примеров масса
Класс матрица
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.04.2013, 18:04 #3
Когда то писал такое: Небольшой шаблонный класс 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";
        }
    }
};
0
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
13.04.2013, 18:06  [ТС] #4
мне без шаблонов
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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";
        }
    }
};

Не по теме:

1
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
13.04.2013, 18:27  [ТС] #6
ребята я конечно вам всем очень благодарен но мне нужен самый просторй класс матрица где сама матрица не как одномерный а как двумерный массив будет представлена и заполненна
0
13.04.2013, 18:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 18:27
Привет! Вот еще темы с ответами:

Реализовать пользовательский класс "Список" и функции-члены для создания, просмотра и удаления списка - C++
Добрый день. Имеются несколько функций для работы с однонаправленным списком. Не получается корректно вызвать эти функции. Может у кого...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Код через класс - C++
Здравствуйте! Помогите пожалуйста переписать код через класс (поля, методы) Оператор Лапласа #include &lt;cv.h&gt; #include &lt;highgui.h&gt; ...

игра через класс на С++ - C++
помогите пожалуйста написать игру(любую)на С++ через классы. спасибо заранее)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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