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

Описать класс "Матрица" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перемножение двух чисел http://www.cyberforum.ru/cpp-beginners/thread168242.html
Никак не могу понять в чем ошибка в таком простом коде #pragma argsused #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> #include <clx.h> #pragma hdrstop
C++ Поиск неориентированного графа Здравствуйте, мне надо бы очень срочно решить данную задачу: Даны степени вершин неориентированного графа. Гарантировано, что число ребер в графе не превышает 500 000. Граф не содержит циклов и петель Формат входных данных Первая строка содержит число N-количество вершин в графе (1<=N<=10 000). N чисел? записанных в следующей строке d (1<=d<=10 000) описывают степени i-той вершины графа.... http://www.cyberforum.ru/cpp-beginners/thread168223.html
"Сжатие" массива C++
Натолкнулся на проблему, помогите, пожалуйста разобраться. Допустим у нас есть массив из 100 элементов. Чтобы "сжать" его в массив из 50 элементов, достаточно брать среднее арифм. каждых двух подряд идущих чисел и записывать в новый массив. А как поступить, если нужно массив из 100 "сжать" в массив, например, из 70 элементов? (например из 10 20 30 получить 13.66 и 26.33)
Нахождение минимального и максимального элементов матрицы C++
дано целочисленная матрица n x m определить: 1. MAX элемент в первом столбце и MIN элемент в последнем столбце. 2 MAX элемент во второй строке и MIN элемент в предпоследней строке и указать их место нахождения
C++ Задание графов матрицами смежности,инцидентности http://www.cyberforum.ru/cpp-beginners/thread168196.html
1. задать граф матрицей смежности; 2. задать граф матрицей инцидентности; 3. задать граф списком ребер. Замечание: 1. для каждого пункта задания построить соответствующий граф; 2. количество верши и количество ребер задается пользователем Подскажите плиз что делать ? Может у кого есть примеры работы с графами?
C++ Перевод числа в строку Подскажите пожалуйста: 1) Каким образом переводится число в строку 2) Как записывается число начиная с последнего символа(задом на перед) #include <iostream.h> #include <string.h> void main() { char s; подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
22.09.2010, 19:16     Описать класс "Матрица"
Цитата Сообщение от Artishok Посмотреть сообщение
ну вот типо класс массива одномерного.вводит и выводит.какие неточности здесь?(остальные методы я реализую попозже.)
Совет про выделение/удаление памяти для массива ты, видимо, проигнорировал. Повторюсь, память для массива нужно динамически выделиять в конструкторе и освобождать в деструкторе. Вот примерный "каркас" класса:
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
86
#include <iostream>
#include <stdexcept>
 
class arr
{
    
public:
    
    arr(size_t cnt = 0);
    arr(const arr& rhs);
    arr(const int* iarr, size_t size);
    ~arr();
    
    const int* iarray() const;
    size_t size() const;
    int& operator [] (size_t index);
    const int& operator [] (size_t index) const;
    
private:
    
    size_t  m_nSize;
    int*    m_pArr;
};
 
arr::arr(size_t cnt)
    : m_nSize(cnt)
{
    m_pArr = new int[m_nSize];
    for(size_t i = 0; i < m_nSize; ++i)
        m_pArr[i] = 0;
}
 
arr::arr(const arr& rhs)
    : m_nSize(rhs.m_nSize)
{
    m_pArr = new int[m_nSize];
    for(size_t i = 0; i < m_nSize; ++i)
        m_pArr[i] = rhs.m_pArr[i];
}
 
arr::arr(const int* iarr, size_t size)
    : m_nSize(size)
{
    m_pArr = new int[m_nSize];
    for(size_t i = 0; i < m_nSize; ++i)
        m_pArr[i] = iarr[i];
}
 
arr::~arr()
{
    delete[] m_pArr;
}
 
const int* arr::iarray() const
{
    return m_pArr;
}
 
size_t arr::size() const
{
    return m_nSize;
}
 
int& arr::operator [] (size_t index)
{
    if(index >= m_nSize)
        throw std::out_of_range("The specified index is out of range");
    return m_pArr[index];
}
 
const int& arr::operator [] (size_t index) const
{
    if(index >= m_nSize)
        throw std::out_of_range("The specified index is out of range");
    return m_pArr[index];
}
 
int main()
{
    int iarray[] = {1, 2, 3, 4};
    arr a1(iarray, 4);
    std::cout << "size = " << a1.size() << std::endl;
    for(size_t i = 0; i < a1.size(); ++i)
        std::cout << i << ". " << a1[i] << std::endl;
    return 0;
}
Цитата Сообщение от Artishok Посмотреть сообщение
это как?
Допустим, у нас уже есть класс arr с необходимой функциональностью. Вот как мы будем его использовать для класса матрицы:
C++
1
2
3
4
5
6
7
class matrix
{
//...
private:
size_t m_nSize;
arr*   m_pMatrix;
};
P.S. И нужно сделать, чтобы класс массива хранил не int, а double
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru