C ++ 11 (Источник: Правила аннулирования Iterator (C ++ 0x) )
Контейнеры последовательности
vector
: все итераторы и ссылки перед точкой вставки не затронуты, если новый размер контейнера больше, чем предыдущая емкость (в этом случае все итераторы и ссылки недействительным) [23.3.6.5/1]deque
: все итераторы и ссылки недействительны, если вставленный элемент не находится на конце (спереди или сзади) дека (в этом случае все итераторы недействительны, но ссылки на элементы не затрагиваются) [23.3.3.4/1]list
: все итераторы и ссылки не затронуты [23.3.5.4/1]forward_list
: все итераторы и ссылки не затронуты (относится к insert_after
) [23.3.4.5/1]array
: (n / a) Ассоциативные контейнеры
[multi]{set,map}
: все итераторы и ссылки не затронуты [23.2.4 / 9] Несортированные ассоциативные контейнеры
unordered_[multi]{set,map}
: все итераторы недействительны при повторном обращении, но ссылки не затрагиваются [23.2.5 / 8]. Повторное воспроизведение не происходит, если вставка не приводит к тому, что размер контейнера превышает z * B
, где z
- максимальный коэффициент нагрузки, а B
- текущее количество ковшей. [23.2.5 / 14] Контейнерные адаптеры
stack
: унаследованы от базового контейнера queue
: унаследовано от базового контейнера priority_queue
: унаследовано от базового контейнера Контейнеры последовательности
vector
: каждый итератор и ссылка на или после точки стирания недействительны [23.3.6.5/3]deque
: удаление последнего элемента делает недействительными только итераторы и ссылки на стертые элементы и итератор прошедшего конца; стирание первого элемента аннулирует только итераторы и ссылки на стертые элементы; стирание любых других элементов делает недействительными все итераторы и ссылки (включая итератор с последним концом) [23.3.3.4/4]list
: только итераторы и ссылки на стертый элемент недействительны [23.3 .5.4 / 3] forward_list
: только итераторы и ссылки на стертый элемент недействительны (применяется к erase_after
) [23.3.4.5/1]array
: (n / a) Ассоциативные контейнеры
[multi]{set,map}
: только итераторы и ссылки на стертые элементы недействительны [23.2.4 / 9] Неупорядоченные ассоциативные контейнеры
unordered_[multi]{set,map}
: только итераторы и ссылки на стертые элементы недействительны [23.2.5 / 13] Контейнерные адаптеры
stack
: унаследовано от базового контейнера queue
: унаследовано от базового контейнера priority_queue
: унаследовано от базового контейнера vector
: согласно вставке / стиранию [23.3.6.5/12]deque
: согласно вставке / стиранию [23.3.3.3/3]list
: согласно вставке / стиранию [23.3.5.3 / 1] forward_list
: согласно вставке / стиранию [23.3.4.5/25]array
: (n / a) Если не указано иное (явно или путем определения функции в терминах других функций), вызывая функцию-член контейнера или передавая контейнер в качестве аргумента для библиотечная функция не должна аннулировать итераторы или изменять значения объектов в этом контейнере. [23.2.1 / 11]
blockquote>Примечание 2
Функцияno swap () делает недействительными любые ссылки, указатели или итераторы, ссылающиеся на элементы контейнеров меняются местами. [Примечание: Итератор end () не ссылается ни на какой элемент, поэтому он может быть недействительным. -End note] [23.2.1 / 10]
blockquote>Примечание 3
Кроме вышеописанной оговорки относительно
swap()
, , неясно, «конец» «итераторы подчиняются перечисленным выше правилам для каждого контейнера ; вы должны, во всяком случае, предположить, что они есть.Примечание 4
vector
и все неупорядоченные ассоциативные контейнеры поддерживаютreserve(n)
, что гарантирует отсутствие автоматического изменение размера будет происходить, по крайней мере, до тех пор, пока размер контейнера не увеличится доn
. Следует соблюдать осторожность с неупорядоченными ассоциативными контейнерами , поскольку в будущем предложение позволит указать минимальный коэффициент нагрузки, который позволит повторить операцию наinsert
после того, как достаточноerase
операций уменьшит размер контейнера ниже минимум; гарантия должна считаться потенциально недействительной послеerase
.
Вы должны переместить файл composer.phar
(который загружается установочными скриптами) в каталог /usr/local/bin
или /usr/bin
sudo mv composer.phar /usr/local/bin/composer
или
sudo mv composer.phar /usr/bin/composer