Другие языки программирования и технологии

Правильно ли я понимаю, что вывод массива на экран в c++ возможен только через перебор элементов?

Простого вывода, как в случае со string не существует?
От того, что в string спрятали цикл вывода, не значит, что это делается одним разом. Когда-то для терминала действительно командой процессора копировали "сразу" блок байт и таким образом ускорялся вывод, в наше же время даже терминал уже эмулируется и там так и так обычный цикл.
Так что если лень делать каждый раз вывод, то сам придумай и перегрузи свою функцию.
ОГ
Орест Гаевый
83 861
Лучший ответ
Плюсы достаточно гибкие, что бы сконструировать конструкцию, которая нужна здесь и сейчас
Gallor
Gallor
94 395
Готового нет, но можно добавить. В C++ всё можно добавить (ну почти ;). Это в большой степени метаязык с возмлжностями конструирования своих конструкций языка.

#include "vector"
#include "iostream"
using namespace std;

template < typename T >
ostream& operator<< (ostream& out, const vector< T > & v) {
for(auto i:v)out<< boolalpha<< i<<' '; return out;}

int main(){
vector < string > s = {"first", "second", "third"};
vector < bool > b = {true, false, true, false, false};
vector < int > i = {1, 2, 3, 4};
vector < float > f = {1.3, 7.85, 1e3, -5};
cout << s << endl;
cout << b << endl;
cout << i << endl;
cout << f << endl;
}

Выдает
first second third
true false true false false
1 2 3 4
1.3 7.85 1000 -5
Володя Меликов
Володя Меликов
93 584
капец какой сложный вывод
for(auto i:arr)cout<<i<<" ";
Боб Бабаскин А плюсы это точно сожрут?
Николай Кильянов Такой код сработает если использовать класс Array из STL, где есть итераторы. Для C- массивов это не годится.
если массив (символов) заканчивается на 0 то можно вывести как string, одним разом

Похожие вопросы