ть для vl выделяется только од

Автор admin Воскресенье, 7 июня 2009 11:32

ть для vl выделяется только один раз. Может показаться, что для vl, как и для v2, следовало бы заранее выделить память, чтобы предотвратить нежелательные многократные ее перераспределения. Но в действительности это не нужно, поскольку использованный при создании vl конструктор заранее определяет необходимый объем памяти. Основные последовательные контейнеры 361 Издержки на перераспределение памяти Интересно посмотреть, что происходит с деком при переполнении выделенной памяти, и сравнить с программой VectorOverflow.cpp: //: C07:Deque0verflow.cpp {-bor} // При включении большого количества элементов // с конца контейнера дек работает гораздо // эффективнее вектора, поскольку он не требует // копирования и уничтожения элементов. #i nclude #i nclude #include “Noisy.h” using namespace std: int main(int argc. char* argv[]) { int size = 1000: if(argc >= 2) size = atoi(argv[l]): deque dn: Noisy n; for(int i = 0: i < size: i++) dn.push_back(n): cout « “\n cleaning up ” « endl: } ///:- На этот раз перед появлением завершающей надписи «cleaning up» сообщения о вызове деструкторов практич


Комментарии закрыты.