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

Демонстрационная программа класса вектор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти все элементы массива, сумма которых равна заданному числу http://www.cyberforum.ru/cpp-beginners/thread425108.html
Привет. Как можно решить эту задачу не перебором? тут подойдет "задача о рюкзаке"?
C++ Не правильно читается файл Здравствуйте! Подскажите, пожалуйста, из-за чего у меня не правильно читается файл и как это исправить. void GenerateCSVTable() { char fileName_ = "example.csv"; char varChar;... http://www.cyberforum.ru/cpp-beginners/thread425106.html
C++ Проверить истинность высказывания "треугольник является равносторонним"
Здравствуйте помогите пожалуйста новичку заранее спасибо Boolean. Даны целые числа a, b, c, являющиеся сторонами некоторого треугольника. Проверить истинность высказывания: «Треугольник со...
Определение типа процессора, в какой версии запускать лучше? C++
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <memory.h> extern void GET_CPU_MODEL(void); extern char VENDOR_ID_MSG; extern char CPU_MODEL; extern...
C++ Изучение С++ http://www.cyberforum.ru/cpp-beginners/thread425098.html
Добрый вечер прошу совета , что изучать далее ? Освоил книгу Джеймса Либрети , Страуструппа. Вроде освоил АЗЫ ООП. Но как быть на практике. Более как создавать фантастические матрицы и фееримческие...
C++ Дружственные функции Разработайте алгоритм и создайте программу с исполь¬зованием дружественных функций и классов. Создайте программу с классом Dancer, который включает в себя следующие данные-эле¬менты о... подробнее

Показать сообщение отдельно
S2dent
52 / 50 / 6
Регистрация: 10.05.2009
Сообщений: 216
10.01.2012, 01:11  [ТС]
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
135
136
137
138
139
140
141
#ifndef Vector_h
#define Vector_h
 
#include <iostream>
#include <string>
 
using namespace std;
 
template <class T>
class Vector {
    unsigned int Size;
    T *ptrVector;
    friend ostream &operator << <> (ostream &output, const Vector <T> &Vect);
    friend istream &operator >> <> (istream &input, Vector <T> &Vect);
public: 
    Vector <T>();
    Vector <T>(unsigned int N);
    ~Vector <T>();
    unsigned int get_Size();
    void SaveInFile(Vector <T> Result);
    Vector <T> operator + (const Vector <T> &Vect); //сложение двух векторов
    Vector <T> operator - (const Vector <T> &Vect); //разность двух векторов
    T operator * (const Vector <T> &Vect); //скалярное произведение векторов
    Vector <T> operator + (T Number); //сложение вектора с числом
    Vector <T> operator - (T Number); // вычитание из вектора числа
    Vector <T> operator * (T Number); //умножение вектора на число
};
 
template <class T>
Vector <T>::Vector() {
    unsigned int N;
    do {
        cout << "Введите размерность вектора: ";
        cin >> N;
    } 
    while (N < 0);
    Size = N;
    try {
        ptrVector = new T[Size];
    }
    catch(bad_alloc) {
        cout << "Ошибка! Недостаточно памяти для вектора!";
        system("PAUSE");
    }
}
 
template <class T>
Vector <T>::Vector(unsigned int N) {
    Size = N;
    try {
        ptrVector = new T[Size];
    }
    catch(bad_alloc) {
        cout << "Ошибка! Недостаточно памяти для векторов!";
        system("PAUSE");
    }
}
 
template <class T>
Vector <T>::~Vector() {
    delete [] ptrVector;
}
 
template <class T>
unsigned int Vector <T>::get_Size() {
    return Size;
}
 
template <class T>
void Vector <T>::SaveInFile(Vector <T> Result) {
    fstream FileOut;
    const string NameFile = "Result.txt";
    FileOut.open(NameFile.c_str(),ios::out);
    FileOut << "Результат: " << Result;
    FileOut.close();
}
 
template <class T>
ostream &operator << <> (ostream &output, const Vector <T> &Vect) {
    for (unsigned int i = 0; i < Vect.Size; i++)
        output << Vect.ptrVector[i] << " ";
    return output;
}
 
template <class T>
istream &operator >> <> (istream &input, Vector <T> &Vect) {
    for (unsigned int i = 0; i < Vect.Size; i++) {
        cout << "Введите элемент №" << i+1 << ": ";
        input >> Vect.ptrVector[i];
    }
    return input;
}
 
template <class T>
Vector <T> Vector <T>::operator + (const Vector <T> &Vect) {
    Vector <T> tmp(Size);
    for (unsigned int i = 0; i < Size; i++)
        tmp.ptrVector[i] = ptrVector[i] + Vect.ptrVector[i];
    return tmp;
}
 
template <class T>
Vector <T> Vector <T>::operator - (const Vector <T> &Vect) {
    Vector <T> tmp(Size);
    for (unsigned int i = 0; i < Size; i++)
        tmp.ptrVector[i] = ptrVector[i] - Vect.ptrVector[i];
    return tmp;
}
 
template <class T>
T Vector <T>::operator * (const Vector<T> &Vect) {
    T Scalar = 0;
    for (unsigned int i = 0; i < Size; i++)
        Scalar += ptrVector[i] * Vect.ptrVector[i];
    return Scalar;
}
 
template <class T>
Vector <T> Vector <T>::operator + (T Number) {
    Vector <T> tmp(*this);
    for (unsigned int i = 0; i < Size; i++)
        tmp.ptrVector[i] += Number;
    return tmp;
}
 
template <class T>
Vector <T> Vector <T>::operator - (T Number) {
    Vector <T> tmp(*this);
    for (unsigned int i = 0; i < Size; i++)
        tmp.ptrVector[i] -= Number;
    return tmp;
}
 
template <class T>
Vector <T> Vector <T>::operator * (T Number) {
    Vector <T> tmp(*this);
    for (unsigned int i = 0; i < Size; i++)
        tmp.ptrVector[i] *= Number;
    return tmp;
}
#endif
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru