один пустой элемент
От: Аноним  
Дата: 05.02.04 16:33
Оценка:
подскажите как добавить один пустой элемент в вектор типа v.resize(v.size() + 1) но вроде как то некрасиво
Re: один пустой элемент
От: unrealalex Россия  
Дата: 05.02.04 16:39
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>подскажите как добавить один пустой элемент в вектор типа v.resize(v.size() + 1) но вроде как то некрасиво

std::vector<type> container;
container.push_back(type());
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
Re[2]: один пустой элемент
От: Кодт Россия  
Дата: 05.02.04 19:20
Оценка:
Здравствуйте, unrealalex, Вы писали:

U>Здравствуйте, <Аноним>, Вы писали:


А>>подскажите как добавить один пустой элемент в вектор типа v.resize(v.size() + 1) но вроде как то некрасиво

U>
U>std::vector<type> container;
U>container.push_back(type());
U>


Это если type является Copy Constructible. (Для элементов вектора это полезное, но, по-моему°, необязательное требование).

° Это предположение. Я не утверждаю.
Конечно, чтобы ВСЕ методы вектора работали — требование станет обязательным. Но кто сказал, что мы будем использовать (и, следовательно, инстанцировать) ВСЕ методы, а не те, где Copy Constructible не нужно?)
Перекуём баги на фичи!
Re[3]: один пустой элемент
От: Павел Кузнецов  
Дата: 06.02.04 07:22
Оценка: 28 (1)
Здравствуйте, Кодт, Вы писали:

А>>> подскажите как добавить один пустой элемент в вектор типа

А>>> v.resize(v.size() + 1) но вроде как то некрасиво

U>>
 U>> std::vector<type> container;
 U>> container.push_back(type());
 U>>


К> Это если type является Copy Constructible. (Для элементов вектора

К> это полезное, но, по-моему°, необязательное требование).

Обязательное для всех контейнеров (23.1/3). Кстати, resize в этом отношении
ничем не отличается. Полностью resize выглядит так:
void resize(size_type sz, T c = T());
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.