Язык программирования C++. Вводный курс


Алгоритм sort_heap() - часть 35


    for (int ival = 0; ival < size; ++iva1 ) // ...

    for (int ival = size-1; ival > 0; ival ) // ...

}

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

[9]

Замечание. Для упрощения программы мы требуем, чтобы каждое слово было отделено пробелом от скобок и логических операторов. Таким образом, запросы вида

(War || Rights)

Civil&&(War||Rights)

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

[10]

Иллюстрация Елены Дрискилл (Elena Driskill).

[11]

Отметим, что deque не поддерживает операцию reserve()

[12]

Существующие на сегодняшний день реализации не поддерживают шаблоны с  параметрами по умолчанию. Второй параметр – allocator – инкапсулирует способы выделения и освобождения памяти. В С++ он имеет значение по умолчанию, и его задавать не обязательно. Стандартная реализация использует операторы new и delete. Применение распределителя памяти преследует две цели: упростить реализацию контейнеров путем отделения всех деталей, касающихся работы с памятью, и позволить программисту при желании реализовать собственную стратегию выделения памяти. Определения объектов для компилятора, не поддерживающего значения по умолчанию параметров шаблонов,  выглядят следующим образом:

vector< string, allocator > svec;

list< int, allocator >      ilist;

[13]

Если функция-член push_front()

используется часто, следует применять тип deque, а не vector: в deque

эта операция реализована наиболее эффективно.

[14]

Последняя форма insert()

требует, чтобы компилятор работал с шаблонами функций-членов. Если ваш компилятор еще не поддерживает это свойство стандарта С++, то оба контейнера должны быть одного типа, например два списка или два вектора, содержащих элементы одного типа.




Начало  Назад  Вперед