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

Матрица, перегрузка операторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать программу, которая выводит на экран горизонтальную линию из символов http://www.cyberforum.ru/cpp-beginners/thread325514.html
Разработать программу, которая выводит на экран горизонтальную линию из символов. Число символов, какой использовать символ, и какая будет линия- вертикальная, или горизонтальная - указывает пользователь . помогите решить :) Не лезьте в чужие темы, для своих вопросов создавайте новые темы.
C++ Исчеpли свойства в окне Properties Помогите пожалуйста... Проблема с Visual Studio!! Раньше когда я например в resorce view тыкал на любой элемент и окне propeties менял его название, свойства... а сейчас у меня просто пустое окно properties и там ничего не отображается... помогите!!!!! http://www.cyberforum.ru/cpp-beginners/thread325494.html
C++ Замена getch()
Здравствуйте. Решил повысить переносимость своего кода и задался вопросом: на что заменить getch? Насколько я понимаю, эта функция откажется работать в юникс-системах и тп. Хочу добиться эффекта ожидания нажатия любой клавиши. Получение кода клавиши не обязательно. Подчеркну, что функция должна быть в стандарте плюсов и платформонезависимой.
C++ C++ моя контрольная
Вот задачи: ------ Есть ошибки при использовании параметров шаблона функций в прототипе? почему? template <class D, class C> D func2(int,C); ------ Напишите указатель на ф-цию, которая имеет след.прототип: long DOP(int a, long b, float*c); ------
C++ protected или не protected : ) http://www.cyberforum.ru/cpp-beginners/thread325437.html
собстно не могу решить как поступить. есть абстрактный класс окошка, являющийся базовым для всех окошек. есть 3 варианта организации/реализации иерархии классов(на примере хранения размера окошка). 1) методы чисто виртуальные. каждый класс их реализовывает сам. class IWindow
C++ Дан Двухмерный массив.Определить: 1) В каком столбце массива сумма элементов меньше: в первом или в последнем; 2) В какой строке массива сумма элементов больше: во второй или в третьей? подробнее

Показать сообщение отдельно
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
24.06.2011, 22:46     Матрица, перегрузка операторов
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>
#include <cstdlib>
#include <clocale>
#include <conio.h>
 
template <typename T>
class vector
{
    size_t _size;
protected:
    T* ptr;
public:
    vector() : _size(), ptr() { }
    explicit vector(size_t _size) : _size(_size)
    {
        ptr = new T[_size];
        for (size_t i = 0; i < _size; ++i)
            ptr[i] = T();
    }
    vector(const vector& copyVector) : _size(copyVector._size)
    {
        ptr = new T[_size];
        for (size_t i = 0; i < _size; ++i)
            ptr[i] = copyVector.ptr[i];
    }
    template <typename S>
    vector(const vector<S>& copyVector) : _size(copyVector._size())
    {
        ptr = new T[_size];
        for (size_t i = 0; i < _size; ++i)
            ptr[i] = copyVector[i];
    }
    template <typename S>
    vector(size_t _size, const T& value) : _size(_size)
    {
        ptr = new T[_size];
        for (size_t i = 0; i < _size; ++i)
            ptr[i] = value;
    }
 
    size_t size() const throw()
    {
        return _size;
    }
 
    T& operator[](size_t index)
    {
        return ptr[index]; 
    }
 
    template <typename S>
    const T& operator= (const vector<S>& copyVector)
    {
        re_size(copyVector._size());
        for (size_t i = 0; i < _size; ++i)
            ptr[i] = copyVector[i];
        return *this;
    }
 
    const vector& operator=(const vector& copyVector)
    {
        re_size(copyVector.size());
        for (size_t i = 0; i < _size; ++i)
            ptr[i] = copyVector.ptr[i];
        return *this;
    }
 
    T at(size_t index) const
    {
        return ptr[index];
    }
 
    void re_size(size_t new__size) 
    {
        T* tmp = new T[new__size];
        size_t tmp__size = _size < new__size ? _size : new__size;
        for (size_t i = 0; i < tmp__size; ++i)
            tmp[i] = ptr[i];
        delete[] ptr;
        ptr = tmp;
        if (_size < new__size)
            for (size_t i = _size; i < new__size; ++i)
                ptr[i] = T();
        _size = new__size;
    }
 
    friend std::ostream& operator<< (std::ostream& file, const vector& buffer)
    {
        size_t size = buffer.size();
        for (size_t i = 0; i < size; ++i)
            file << buffer.at(i) << " ";
        file << std::endl;
        return file;
    }
 
    typedef T value_type;
};
 
template <typename T>
class matrix : public vector<vector<T> >
{
public:
    matrix(size_t m,  size_t n) : vector<vector<T> >(m)
    {
        for (size_t i = 0; i < m; ++i)
            this->ptr[i].re_size(n);
    }
    template <typename S>
    matrix(size_t _size, const vector<S>& vectorTmp) : vector<vector<T> >(_size, vectorTmp) { }
};
 
int main()
{
    const size_t rows = 4;
    const size_t cols = 5;
 
    matrix<int> m(rows, cols);
 
    for (size_t i = 0; i < rows; ++i)
        for (size_t j = 0; j < cols; ++j)
            m[i][j] = i + j;
 
//  for (size_t i = 0; i < rows; ++i)
//  {
//      for (size_t j = 0; j < cols; ++j)
//          std::cout << m[i][j] << "  ";
// 
//      std::cout << std::endl;
//  }
    std::cout << m;
 
    _getch();
    return EXIT_SUCCESS;
}
мой вариант на скорую руку.
 
Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru