(то есть один элемент отображе

Автор admin Четверг, 11 июня 2009 11:32

(то есть один элемент отображения). Но компоненты pair хранятся по значению, то есть для занесения объектов в pair необходим вызов копирующего конструктора. Таким образом, создание объекта tmp в операторной функции map::operator[ ] потребует по крайней мере вызова копирующего конструктора и деструктора для каждого компонента pair. В нашем случае это терпимо, поскольку ключ является целым числом. Но если вы хотите увидеть, что может произойти при вызове операторной функции map::operator[ ], попробуйте запустить следующую программу: //: C07:NoisyMap.cpp // Отображение Noisy в Noisy //{L} Noisy #include
#include “Noisy.h” using namespace std: int mainO { map mnn: Noisy nl, n2; cout « “\n——- -\n”; mnn[nl] = n2: cout « “\n -\n”: cout « mnn[nl] « endl cout « “\n-…… -\n”: } III- Пример показывает, что вставка и поиск порождают множество лишних объектов, и все это происходит из-за создания объекта tmp. Если вернуться к функции map::operator[ ], вы увидите, что вторая строка вызывает функцию insert() и передает ей объект tmp. Возвращаемое значение функции insert() представляет собой п


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