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

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

Сообщение Anonymous »

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

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

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

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

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

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

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