Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 55
1

Не пойму, как распечатать массив перегрузив оператор "<<"? (код внутри)

22.11.2020, 13:09. Показов 1803. Ответов 6

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
template<typename type, size_t length>
ostream& operator <<( ostream& os, const type( &arr )[ length ])
{
    for( size_t i = 0; i < length; ++i ) os << arr[ i ] << endl;
    return os;
}
 
int main() {
  int arr_size = 10;
  int arr[ arr_size ];
  for( int i = 0; i < arr_size; ++i ) arr[ i ] = i + 1;
 
  cout << arr;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2020, 13:09
Ответы с готовыми решениями:

Не пойму как работают ссылки внутри объекта
Вот например есть у меня класс /*Hero.h*/ #include &lt;iostream&gt; using namespace std; class...

Массив: Массив [X,Y] распечатать в табличном виде, а затем транспонировать и распечатать рядом с первым массивом...
ЗАДАНИЕ - Заполнить массив случайными двузначными числами, распечатать в табличном виде, а затем...

Как устроен оператор SELECT внутри?
Привет! Я провел следующий эксперимент. Создал таблицу с 2 полями: id (int, primary key;...

не пойму оператор if
%%lab 3 clc m = 7; X = 0:0.01:m; Y = 0:0,01:m; = meshgrid(); tmp = ; Z = (exp(-X))+(X.^2) -...

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

6
"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
22.11.2020, 13:14 2
leoworker, работает же.
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
22.11.2020, 13:17 3
Лучший ответ Сообщение было отмечено leoworker как решение

Решение

Цитата Сообщение от leoworker Посмотреть сообщение
int arr_size = 10;
C++
1
const int arr_size = 10;
1
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 55
22.11.2020, 13:52  [ТС] 4
Цитата Сообщение от zss Посмотреть сообщение
1
const int arr_size = 10;
Не понял, а почему это работает?
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
22.11.2020, 14:06 5
По правилам языка, размер массива задается константой.
Некоторые компиляторы позволяют задавать размер, определяемый на этапе исполнения.
Однако, это не является стандартом языка.
В этом случае нужно использовать динамическое выделение памяти:
C++
1
2
3
4
5
6
7
  int arr_size;
  cin>>arr_size;
  int* arr = new int[ arr_size ];
  for( int i = 0; i < arr_size; ++i ) arr[ i ] = i + 1;
 
  cout << arr;
  delete[] arr;
0
0 / 0 / 0
Регистрация: 15.02.2019
Сообщений: 55
22.11.2020, 14:31  [ТС] 6
Цитата Сообщение от zss Посмотреть сообщение
int arr_size;
  cin>>arr_size;
  int* arr = new int[ arr_size ];
  for( int i = 0; i < arr_size; ++i ) arr[ i ] = i + 1;
cout << arr;
  delete[] arr;
Я так пробовал делать, это не работает. Выдает: 0x223f280 и т.д.
Миниатюры
Не пойму, как распечатать массив перегрузив оператор "<<"? (код внутри)  
0
"C with Classes"
1646 / 1403 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
22.11.2020, 16:18 7
Лучший ответ Сообщение было отмечено leoworker как решение

Решение

Цитата Сообщение от leoworker Посмотреть сообщение
это не работает
у тебя перегрузка для ссылки на массив, а ты передаешь указатель

Добавлено через 23 минуты
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
#include <iostream>
 
using namespace std;
 
template<typename type, size_t length>
ostream& operator <<( ostream& os, const type( &arr )[ length ])
{
    for( size_t i = 0; i < length; ++i ) os << arr[ i ] << endl;
    return os;
}
 
template<typename type, size_t length>
ostream& operator <<( ostream& os, const type( *arr )[ length ])
{
    return os << *arr;
}
 
int main() {
  const int arr_size = 10;
  int arr[ arr_size ];
  for( int i = 0; i < arr_size; ++i ) arr[ i ] = i + 1;
 
  cout << &arr;
}
1
22.11.2020, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2020, 16:18
Помогаю со студенческими работами здесь

Использовать значение char как арифметический оператор внутри кода
Нужно создать переменную типа char, через консоль ввести значение (+,-,*,/) и использовать его же...

С sql запросом на добавление данных не пойму как написать код
Я свою базу данных подключил в visio studio. Вот добавил их в форму все показываеть данные все...

Не пойму, как изменить код, чтобы читал следующий цикл
Целое положительное число m записывается в 16-ой системе счисления и разряды в этой записи...

У меня есть файл и внутри этого файла есть код, я хочу его открыть в IDLE питон так, чтобы внутри код вывести
У меня есть файл и внутри этого файла есть код, я хочу его открыть в IDLE питоне так, чтобы код...

Двумерный массив. перестановка элементов. (код внутри, поправьте)
вот условие: Заполнить двумерный массив размером 9х9 случай- ными числами. Отобразить...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru