Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
14 / 14 / 1
Регистрация: 17.08.2015
Сообщений: 460

Вывести все элементы массива vector, перегрузка ostream

16.09.2015, 20:52. Показов 877. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

вот проблема элементарная, а решить что-то сил уже нет.
В программе ввожу некие значения, потом ввожу переменную h, которая должна записаться в vector H
А потом хочу вывести то, что есть в H, но не могу, потому что H описан в классе и при стандартном
запросе cout<< ... пишет, что H не задекларирован.

Это было бы легко сделать, если бы я не использовал класс, но мне нужно вот так, так как прога будет больше, это только начало.

Может кто-нибудь подправить, please...?

Код

C++ (Qt)
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
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
 
class RunKutMer{
private:
    float a,y0,InEps,h;//x=a, f(x)=f(a)=y0, h - шаг
public:
 
    float f(float x, float y){
       return x*x+y*y-4;
      }
//нужно по-видимому запихивать получившиеся значения в массив
    //мы используем vector
 
    void EnterData(){
        cout<<"Enter a= ";cin>>a;
        cout<<"Enter the amount of function f(a)= ";cin>>y0;
        cout<<"Enter Eps= ";cin>>InEps;
        cout<<"Enter step h= ";cin>>h;
    }
    void testH(){
        cout<<"h= "<<h;
    }
 
    void Array(){
        vector <float> H; //создали массив для h
        H.push_back (h);  //записал в массив H первый элемент h
        
       // cout<<H[0]<<endl;
    }
 
    void OutPut(){
        cout<<"a= "<<a<<endl;
        cout<<"f(a)= "<<y0<<endl;
    }
 
};
 
int main()
{
    int i;
      RunKutMer W;
      W.EnterData();
      W.OutPut(); //так как переменные типа private, то обращаться к ним можно только через функции
      W.Array();
      for(i=0;i<3;i++){
          W.testH(); // введем h
          W.Array(); // запишем его в массив H
      }
      // нужно отобразить элементы, которые находятся в массиве H. Как?
      for(i=0;i<3;i++){
          cout<<H[i]<<endl;
      }
}

Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2015, 20:52
Ответы с готовыми решениями:

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

Сформировать и вывести на экран новый массив, который будет содержать вначале все элементы массива A(0), затем все элементы массива B(4)
Здравствуйте! Помогите написать парочку программ... 3. Даны массивы A(0) и B(4). Сформировать и вывести на экран новый массив,...

Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы
В одномерном массиве, состоящем из n вещественных элементов, – вывести на печать элементы массива, значения которых не принадлежат...

8
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.09.2015, 21:01
Цитата Сообщение от Blitzor DDD Посмотреть сообщение
потому что H описан в классе
классе методе Array.
И дохнет сразу по завершении этого самого метода. А вообще, вам надо перегрузить ostream&operator(ostream&stream,const RunKutMer&value) и в нем вектор и распечатать (не забыв указать оператор френдом RunKutMer).
0
14 / 14 / 1
Регистрация: 17.08.2015
Сообщений: 460
16.09.2015, 21:04  [ТС]
Цитата Сообщение от Renji Посмотреть сообщение
классе методе Array.
И дохнет сразу по завершении этого самого метода. А вообще, вам надо перегрузить ostream&operator(ostream&stream,const RunKutMer&value) и в нем вектор и распечатать (не забыв указать оператор френдом RunKutMer).
Oh Gott..
Я знаю, что функция-друг используется для доступа к закрытым членам, но метод то ведь объявлен public
Что значит перегрузить
Цитата Сообщение от Renji Посмотреть сообщение
ostream&operator(ostream&stream,const RunKutMer&value)
?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.09.2015, 21:07
Цитата Сообщение от Blitzor DDD Посмотреть сообщение
Я знаю, что функция-друг используется для доступа к закрытым членам, но метод то ведь объявлен public
Метод - public. А массив скорее всего будет private (когда вы его из метода вынете).
Цитата Сообщение от Blitzor DDD Посмотреть сообщение
Что значит перегрузить
Объявить в смысле, чтоб оно к cout и прочим ostream подцепилось.
C++
1
2
3
4
5
inline ostream&operator<<(ostream&stream,const RunKutMer&value)
{
   stream<<"бла-бла-бла";
   return stream;
}
0
14 / 14 / 1
Регистрация: 17.08.2015
Сообщений: 460
16.09.2015, 21:08  [ТС]
ой...
А попроще способа точно нет?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.09.2015, 21:09
Цитата Сообщение от Blitzor DDD Посмотреть сообщение
А попроще способа точно нет?
Делать метод printH и печатать объект через W.printH().
0
14 / 14 / 1
Регистрация: 17.08.2015
Сообщений: 460
16.09.2015, 21:12  [ТС]
C
1
2
3
 void PrintH(int j){
        cout<<H[j]<<endl;
    }
C
1
W.PrintH(3);
Так что-то тоже не работает
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.09.2015, 21:13
Потому что H надо сделать полем класса, а не локальной переменной метода.
0
14 / 14 / 1
Регистрация: 17.08.2015
Сообщений: 460
16.09.2015, 21:17  [ТС]
тогда работает, но не так, как надо.

Должен в цикле спрашивать h=
Потом записывать в H,
а потом выводить в столбец то, что есть в H

А тут как-то некорректно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2015, 21:17
Помогаю со студенческими работами здесь

Вывести все элементы массива в виде матрицы и вывести номер строки массива, в которой каждый элемент равен X.
Дан двумерный массив N=9, M=10; Вывести все элементы массива в виде матрицы и вывести номер строки массива, в которой каждый элемент равен...

Не работает перегрузка оператора ostream
в задаче перегрузил оператор ostream std::ostream &amp; operator&lt;&lt;(std::ostream _o, const Tournament &amp; _table); в тестовой...

Вывести элементы массива, находящихся между его min и max. Перегрузка функций для int и double
Заданы два массива - массив целых и массив вещественных чисел. Вывести на экран массив, составленный из элементов исходного целочисленного...

Перегрузка дружественных операторов istream ostream
Проблема следующая. Выдает ошибку 1&gt;Source.obj : error LNK2019: ссылка на неразрешенный внешний символ &quot;public: __thiscall...

Элементы массива расположить в обратном порядке и вывести все элементы с четными индексами
помагите с прогой плиз... Преобразовать массив Х, содержащий n вещественных чисел, по следующему правилу: элементы массива...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru