Почему std :: ecector :: insert требует, чтобы шаблон был скопируется и копирует?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему std :: ecector :: insert требует, чтобы шаблон был скопируется и копирует?

Сообщение Anonymous »

n4868 22.2.3.3 Таблица 77 Требования к контейнеру последовательности утверждают, что вставка (iterator pos, size_type count, t требует t для copyinsertable и copyAssignable в любом контейнере последовательности. Это означает, что не может быть сделано никаких движений или свопов, чтобы сдвинуть элементы, если POS уже занят.
Вопрос в том, как Std :: vector ситуации обрабатывают ситуации, когда у него достаточно места для вставки n -элементов, и ему необходимо сдвинуть элементы, указанные pos ? Всегда ли это перераспределять память независимо от t ? Или он использует конструктор/назначение копирования для сдвига элементов, а затем назначает их в обязательное место? Если да, то сдвигается только тогда, когда T Copy Construction/назначение не бросается?

Подробнее здесь: https://stackoverflow.com/questions/797 ... yinsertabl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»