Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 4
1

class vector (sub operation)

09.12.2010, 21:27. Просмотров 953. Ответов 1
Метки нет (Все метки)

Всем привета

Задание:
Реализовать клас вектор , и умножить вектор на вектор..
Проблема состоит в том что я не могу понять как ввести координаты вектора с клавиатуры
Нашёл какй то стремный код для Вв/вв:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
friend istream& operator >> (istream& is, Vector& v)
        {                                   
       for(size_t i = 0; i < v.size; i++)
       {
        cout << "Input vect[" << i << "]:\t";
        is >> v.vect[i];
       }
       return is;
    }
    friend ostream& operator << (ostream& os, const Vector& v)
        {                                   
         os << "Vector:   (";
         for(size_t i = 0; i < v.size; i++)
         {
            os << v.vect[i];
            if(i == v.size - 1)
            os << ")\n";
           else
            os << ", ";
         }
        return os;
    }    size_t GetSize() const;
Но что то не получаеться его совместить с моей написаной прогой ..
вот:
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
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
class vect {
public:
   vect(int=0,int=0,int=0,int=0,int=0);   
   vect operator*(const vect &); 
   vect operator*(const int &); 
   void print() const;
   private:
   int a,b,c,d,e;
};
vect::vect(int a1,int b1,int c1,int d1,int e1)
{
   a = a1;
   b = b1;
   c = c1;
   d = d1;
   e = e1;
}
vect vect::operator*(const vect &operand2)
{
   vect proizv;
   proizv.a = a * operand2.a;
   proizv.b = b * operand2.b;
   proizv.c = c * operand2.c;
   proizv.d = d * operand2.d;
   proizv.e = e * operand2.e;
   return proizv;
}
vect vect::operator*(const int &operand2)
{
   vect proizv;
   proizv.a = a * operand2;
   proizv.b = b * operand2;
   proizv.c = c * operand2;
   proizv.d = d * operand2;
   proizv.e = e * operand2;
   return proizv;
}
void vect::print() const
{
   cout<<'('<<a<<", "<<b<<", "<<c<<", "<<d<<", "<<e<<')';
}
int main(int argc, char* argv[])
{
   vect x(5,6,7,8,9),y(4,3,2,1,7);
   vect z;
   cout<<"\n Vector 1:";
   x.print();
   cout<<"\n Vector 2:";
   y.print();
   z = x * y;
   cout<<"\n Vector*Vector:   ";
   z.print();
   getch();
   return 0;
}
Поскажите пожалуйста как это сделать
Кому не трудно и объясните как вы это сделали..
Спасибо за внимание
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2010, 21:27
Ответы с готовыми решениями:

Странная ошибка при создании vector<class> name
Всем доброго времени суток! Потребовалось создать динамический массив из объектов определенного...

vector<[class]> in class и перегрузка (ostream)
Доброе всем время суток ) столкнулся с проблемой Есть у меня несколько классов и есть класс...

Vector ругается на использование классов E2397 и Invalid pointer operation
Не получается использовать vector с собственными классами выдает либо Unit1.cpp(62): E2397...

Vector с типом данных class
Здравствуйте, у меня возникло недопонимание как работать с вектором , который имеет тип данных...

1
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
10.12.2010, 00:30 2
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
namespace Exercise
{
    class Vector
    {
    public:
               Vector( void )
                   : m_begin(),
                     m_end()
               {
               }
 
               Vector( double _dXFirst,  double _dYFirst,
                       double _dXSecond, double _dYSecond )
                   : m_begin(_dXFirst , _dYFirst ),
                     m_end  (_dXSecond, _dYSecond)
               {
               }
 
               Vector( const std::pair<double, double>& _begin,
                       const std::pair<double, double>& _end   )
                   : m_begin(_begin),
                     m_end  (_end)
               {
               }
 
               std::pair<double, double> GetBegin( void ) const
               {
                   return m_begin;
               }
                
               std::pair<double, double> GetEnd( void ) const
               {
                   return m_end;
               }
 
               void SetBegin ( double _dX, double _dY)
               {
                   m_begin = std::make_pair(_dX, _dY);
               }
 
               void SetBegin (const std::pair<double, double>& _begin)
               {
                   m_begin = _begin;
               }
 
               void SetEnd ( double _dX, double _dY)
               {
                   m_end = std::make_pair(_dX, _dY);
               }
 
               void SetEnd (const std::pair<double, double>& _end)
               {
                   m_end = _end;
               }
 
               double X( void ) const
               {
                   return m_end.first - m_begin.first;
               }
 
               double Y( void ) const
               {
                   return m_end.second - m_begin.second;
               }
 
               std::string ToString ( void ) const
               {
                   std::ostringstream sResult;
 
                   sResult << "((" << m_begin.first << ", " << m_begin.second << "), (" << m_end.first << ", " << m_end.second << "))";
 
                   return sResult.str();
               }
 
    private:
        std::pair<double, double> m_begin;
        std::pair<double, double> m_end;
    };
 
    template <class _Stream>
    _Stream& operator >> (_Stream& _strm, Vector& _vector)
    {
        double dX = 0, 
               dY = 0;
 
        _strm >> dX >> dY;
        _vector.SetBegin(dX, dY);
 
        _strm >> dX >> dY;
        _vector.SetEnd(dX, dY);
 
        return _strm;
    }
 
    template <class _Stream>
    _Stream& operator << (_Stream& _strm, const Vector& _vector)
    {
        _strm << _vector.ToString();
        return _strm;
    }
 
    double operator * (const Vector& _right, const Vector& _left)
    {
        double dResult = _right.X()*_left.X() + _right.Y() * _left.Y();
 
        return dResult;
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2010, 00:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как инициализировать Vector <class>?
Нужно реализовать такую задачу: Дан список учеников в формате Имя Оценка1 Оценка2 Оценка3 Надо...

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i !=...

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt;...

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало...


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

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

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