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

Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
investr
1 / 1 / 2
Регистрация: 30.11.2011
Сообщений: 77
20.12.2012, 10:21     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #1
Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение.

Добавлено через 18 минут
Вот программа. Правильно ли она работает? Напишиите пожалуйста коментарии.
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
#pragma argsused
#include <iostream>
 
class Vector
{
      private:
              int *vec;
              int size;
      public:
             Vector();
             Vector(int mas[], int n);
             ~Vector();
             
             friend std::ostream & operator<<(std::ostream & os, const Vector & b);
             Vector & operator>(int n);
};
 #include "Vector.h"
 
 Vector::Vector()
 {
      size = 1;
      vec = new int[1];
      vec[0]=0;
 }
         
 Vector::Vector(int mas[],const int n)
 {
      size = n;
      vec = new int[n];
      for(int i=0; i<n; i++)
      vec[i]=mas[i];
 }
            
 Vector::~Vector()
 {
          delete [] vec;
 }
 
 std::ostream & operator<<(std::ostream & os, const Vector & b)
 {
              for(int i=0; i<b.size; i++)
              os << "vector[" << i << "]:" << b.vec[i] << std::endl;
     return os;
 }
        
Vector & Vector::operator>(int n)
 {
        for(int i=0; i<size; i++)
        vec[i]-=n;
        
        return *this;
 }
#include <iostream>
#include "Vector.h"
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    int mas[5] = {1,2,3,4,5};
    
    Vector i(mas,5);
    
    cout << i;
    cout << endl;
    
    cout << (i>5);
    cout << endl;
    
    i>-5;
    
    cout << i;
    cout << endl;
 
    system("pause");
    
    return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 10:21     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение
Посмотрите здесь:

Как описать одномерный массив целых и действительных чисел одновременно? C++
C++ Дан одномерный массив состоящий из n целых чисел, надо сортировать элементы по уменьшению
C++ Описать класс, реализующий простой динамический массив из целых чисел
C++ Дан массив целых чисел из 10 элементов.Все элементы кратные 10 заменить 0;Все нечетные элементы удвоить, а четные уменьшить на 2;
Ввести квадратную матрицу целых чисел*. Элементы матрицы, которые не попадают в интервал [a,b] записать в отдельный вектор (массив) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
20.12.2012, 12:06     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #2
зачем два раза #include <iostream> и #include "Vector.h"?
investr
1 / 1 / 2
Регистрация: 30.11.2011
Сообщений: 77
22.12.2012, 00:06  [ТС]     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #3
Можно и без них. Может кто комментарии написать?

Добавлено через 15 часов 36 минут
Никто не может написать комментарии?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
22.12.2012, 00:18     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #4

Не по теме:

investr, честно говоря, лениво) Да и откуда я могу знать, насколько вы не знаете язык? Может вам не понятно 2 строчки, а может все.


А по теме - давайте перейдем на систему "вопрос-ответ". Вы задаете вопрос по непонятной строчке и ждете на него ответ.
// перед этим желательно помучить автора кода, у которого вы этот код и взяли
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
22.12.2012, 00:47     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #5
так пойдёт?
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
//#pragma argsused                  // директивая которая уберает предупреджения типа какой-то параметр не испульзуется в такой-то функции
                              // вроде есть только у борланда (это комплиятор такой)
#include <iostream>       // надеюсь это не надо объяснять
 
class Vector        // объявляем класс Vector
{
      private:
              int *vec;
              int size;
      public:
             Vector();
             Vector(int mas[], int n);
             ~Vector();
             
             // тут пошло самое интересное перегрузка операторов :)
             // пока не перегрузишь самостоятельно несколько раз не поймешь до конца что к чему
             friend std::ostream & operator<<(std::ostream & os, const Vector & b);
             Vector & operator>(int n);
};
 //#include "Vector" // закоментируй это. это были три файла Vector.h, Vector.cpp и main.cpp
                     // поэтому несколько "инклудов"
  
 Vector::Vector()  // конструтор по умолчанию, т.е. если мы просто создадим вектор без аргументов
 {                 // то у нас создается массив с одним элементом = 0
      size = 1;
      vec = new int[1];
      vec[0]=0;
 }
         
 Vector::Vector(int mas[],const int n) // конструктор с аргументами
 {
      size = n;
      vec = new int[n]; // выделяем память под массив на n элементов
      for(int i=0; i<n; i++)
      vec[i]=mas[i];    // и присваеваем каждому его элементу соотвествующий элемент переданного в конструктор массива 
 }
            
 Vector::~Vector()      // в деструкторе возвращаем память обратно в кучу
 {
          delete [] vec;      
 }
 
 std::ostream & operator<<(std::ostream & os, const Vector & b)  // перегрузка оператора << 
 {  // передаём по ссылке объект os класса ostream и объект b класса Vector
              for(int i=0; i<b.size; i++)
              os << "vector[" << i << "]:" << b.vec[i] << std::endl;  // делаем красивый вывод значения для этого объекта
     return os;
 }
        
Vector & Vector::operator>(int n)  // перегрузка оператора >
 {
        for(int i=0; i<size; i++) // пробегаем по всему массиву 
        vec[i]-=n;                // и уменьшаем каждый член этого массива на n
        
        return *this;
 }
//#include <iostream>
//#include "Vector.h"
 
using std::cout;  // используем чтобы вместе std::cout можно было бы писать короче
using std::cin;   // cout cin endl
using std::endl;
 
int main()
{
    int mas[5] = {1,2,3,4,5};  // создаём массив
    
    Vector i(mas,5);  // забиваем массив mas в вектор i
    
    cout << i;        // выводим этот вектор через перегруженный оператор <<
    cout << endl;
    
    cout << (i>5);    // выводим вектор с уменьшенными значениями
    cout << endl;
    
    i>-5;           // "уменьшаем" на -5
    
    cout << i;     // снова выводим
    cout << endl;
 
    system("pause");
    
    return 0;
 
}
investr
1 / 1 / 2
Регистрация: 30.11.2011
Сообщений: 77
22.12.2012, 18:02  [ТС]     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #6
Спасибо огромное!

Добавлено через 8 часов 28 минут
А как можно сделать использую другую перегрузку операторов?
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
22.12.2012, 22:26     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #7
сделать что?
другая перегрузка == перегрузка других операторов?
investr
1 / 1 / 2
Регистрация: 30.11.2011
Сообщений: 77
24.12.2012, 23:23  [ТС]     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #8
Другим способом перегрузку сделать.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
24.12.2012, 23:59     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #9
не совсем понял. Сделать перегрузку другого оператора или по-другому перегрузить этот оператор?
investr
1 / 1 / 2
Регистрация: 30.11.2011
Сообщений: 77
26.12.2012, 16:22  [ТС]     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #10
По другому перегрузить этот оператор
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2012, 18:08     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение
Еще ссылки по теме:

C++ Класс (динамически одномерный массив целых чисел)
Класс "Одномерный массив целых чисел" C++

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

Или воспользуйтесь поиском по форуму:
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
26.12.2012, 18:08     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение #11
C++
1
2
3
4
5
6
7
Vector & Vector::operator>(int n)  // перегрузка оператора >
 {
        for(int i=0; i<size; i++)
        vec[i]+=n;                // заменили vec[i]-=n на vec[i]+=n;
        
        return *this;
 }
теперь он увеличивает элементы вектора на заданное значение.
Задавайте вопрос конкретнее, как именно по-другому перегрузить оператор?
Если написать vec[i]*=n (vec[i]/=n), то он будет умножать (делить) на заданное значение.
если написать vec[i] += n * 10, то оператор будет увеличивать на n*10 все элементы вектора.
Yandex
Объявления
26.12.2012, 18:08     Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > уменьшить элементы вектора на заданное значение
Ответ Создать тему
Опции темы

Текущее время: 09:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru