Итераторы reverse_iterator и const_reverse_iterator предназначены для перечисления элементов контейнера в обратном порядке (от конца к началу). Об этом написано в любой более или менее приличной книге по С++. Но есть ряд моментов, о которых там умалчивают. Один из них связан с неоднозначностью, возникающей при работе с обратными итераторами. Продолжить чтение →
Архив категорий:C++
Пара слов в защиту goto
Все программисты знают, что использовать оператор goto — моветон. Объясняют это обычно тем, что он сильно запутывает код и делает его трудно читаемым. Это так. Но в некоторых случаях с помощью него можно избежать нежелательного дублирования кода. Продолжить чтение →
Дружественная функция для шаблонного класса
При работе в С++ время от времени приходится создавать свои собственные шаблоны. Их синтаксис описывается в любой более-менее приличной книге по С++. Но правильное объявление дружественной функции может вызвать трудности. Продолжить чтение →
О размере типов int и long
Типы int и long (он же long int) хорошо знакомы каждому программисту C/C++. Их размер и диапазон возможных значений описываются в каждой книге по С/С++. Но оказывается то, что написано в книгах не всегда соответствует действительности. Продолжить чтение →
Компиляторы gcc и g++
Про компилятор gcc слышали наверное все. Это стандартный компилятор C/C++ в Linux. А вот его «коллега» g++ известен меньше. Продолжить чтение →
Функции printf, wprintf и _tprintf
В языке C/C++ существует два типа символов: обычный char и широкий wchar_t. Для каждого из них предусмотрена своя версия функции форматированного вывода. Для char это printf, а для wchar_t – wprintf. Но со временем понадобился третий вариант этой функции. Продолжить чтение →