Используйте |
push_back () |
или |
resize () |
для контейнера |
вместо |
realloc () для |
массива; §11.2. |
|
|
|
|
|
|
|
|
|
|
Не |
используйте |
итераторы, указывавшие |
в vector, после |
|
изменения |
его размера; |
§11.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Не |
рассчитывайте |
на проверку выхода за границы диапазона |
в операто |
ре |
[ ] ; § 11.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используйте |
at (),если вам |
нужна гарантированная проверка |
выхода |
за границы диапазона; |
§ 11.2; [CG:SL.con.3]. |
|
|
|
|
|
|
|
Используйте |
цикл |
for |
для диапазона и алгоритмы стандартной |
библио |
теки, чтобы без затрат |
избежать |
проверки выхода |
за границы |
диапазона; |
§ 11.2.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Элементы копируются в контейнер; §11.2.1. |
|
|
|
|
|
|
|
Для сохранения |
полиморфного поведения элементов храните |
указатели; |
§ 11.2.1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Операции вставки, такие как |
insert () и |
push_back (), в |
vector за |
частую оказываются на удивление эффективными; §11.3. |
|
|
|
|
|
Используйте forward_ list для последовательностей, которые |
обычно |
пусты; §11.6. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Когда дело касается производительности - |
выполняйте измерения, не |
доверяя интуиции; § 11.2. |
|
|
|
|
|
|
|
|
|
|
|
map обычно реализуется как красно-черное дерево; §11.4. |
|
|
|
|
|
uno rde red_тар представляет собой хеш-таблицу; §11.5. |
|
|
|
|
|
Передавайте |
контейнеры в функции по ссылке, а |
возвращайте |
по значе |
нию; §11.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В случае контейнеров |
используйте синтаксис |
инициализации |
с ( ) |
для |
размеров и с |
{ } - |
для списков |
элементов; |
§4.2.3, §11.2. |
|
|
|
|
|
Предпочитайте |
компактные структуры данных с последовательным |
раз |
мещением элементов; |
§11.3. |
|
|
|
|
|
|
|
|
|
|
|
Обход списка - |
относительно дорогостоящая |
процедура; §11.3. |
|
Используйте |
неупорядоченные |
контейнеры, |
если требуется |
быстрый |
поиск среди |
большого |
количества данных; |
§11.5. |
|
|
|
|
|
|
Используйте упорядоченные |
ассоциативные |
контейнеры |
(такие, |
как |
map или set), |
если требуется |
упорядоченный |
обход их |
элементов; |
§11.4. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используйте |
неупорядоченные |
контейнеры для |
элементов, |
|
типы кото |
рых не имеют естественного |
порядка (например, не имеют |
разумного |
оператора <); §11.4. |
|
|
|
|
|
|
|
|
|
|
|
|