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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Если какие-то элементы массивов одинаковы, то вывести номера этих элементов http://www.cyberforum.ru/cpp-beginners/thread739421.html
Здравствуйте! У меня такая задача, даны две массивы, если какие то элементы этих массивов одинаковы то вывести номера этих элементов. Вот ни как не могу решить эту задачу. Подскажите пожалуйста как...
C++ Узнать какой день недели 1 января введенного года, определить високосность и посчитать количество выходных дней в этом году на Borand C++ http://www.cyberforum.ru/cpp-beginners/thread739418.html
fstream (удалить файл каким то методом и переименовать) C++
Здравствуйте. Возник вопрос. В инете ничего не нашел толкового так как английский хромой. fstream f("txt.txt",ios::in); можно ли удалить этот файл каким то методом и переименовать. вроде на обычных...
C++ узнать какой день недели 1 января введенного года, определить високосность и посчитать количество выходных дней в этом году
программку надо написать на Borland C++...
C++ Многомерный массив и массив массивов http://www.cyberforum.ru/cpp-beginners/thread739403.html
На паскале это синонимы. Например, всё валидно: var a:arrayof arrayof array of real; {объявлен одномерный массив одномерных массивов одномерных массивов реалов} begin a:=2; {А обращаемся к...
C++ буферная память Здравствуйте!помогите устранить проблему. В данной функции есть два буфера: bufin и bufout. в буфер bufin считывается информация из файла размером 3 мегабайта, затем данная информация разбивается на... подробнее

Показать сообщение отдельно
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
22.12.2012, 00:47
так пойдёт?
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;
 
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru