Что лучше использовать для вывода на консоль символов: 'cout << ...' или 'cout.put(...)'?
Функция-член класса put
стандартного класса basic_ostream
, объявленная как
basic_ostream<charT,traits>& put(char_type c)
предназначена только для объектов типа char_type
, Она не перегружена для объектов других типов. Поэтому, например, чтобы написать эквивалентный вывод данным предложениям
int x = 10;
std::cout << "x = " << x << std::endl;
вам придется писать
int x = 10;
std::cout.put( 'x' ).put( ' ' ).put( '=' ).put( ' ' ) << x << std::endl;
что выглядит очень вычурно.
Внутренне такие функции, как, например, std::endl
и std::ends
используют функцию put
. То есть эта функция считается функцией низшего уровня. В прикладных программах лучше использовать operator <<
, который перегружен для всех стандартных типов и кроме того может быть перегружен для пользовательских типов. При этом код с использованием этого оператора выглядит более естественным и не вызывает вопросов.
На низшем уровне, например, когда вы реализуете свою функцию более высокого уровня, как, например, тот же самый оператор operator <<
вы можете использовать функцию put
.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Требуется разбить большой файл (1 600 000 строк) на строки и сохранить в коллекцию с уникальными значениямиПодгрузка файла происходит на javascript,...
Нужно создать такой оператор Point& operator+=(Point &, const Point&)
Помогите создать getter для класса Point double& x();
Есть VPN сервер и я к нему подключаюсь по протоколу PPTP или L2TP с помощью стандартных средств виндовс, аля http://skynetcom