Как название, я смущен этим. swap
должен быть чрезвычайно полезным, если мы сталкиваемся с итеративной проблемой. Старый вектор и новый вектор можно заменить, заменив указатель на память вместо содержимого. Однако это справедливо в std::vector
, но не в std::valarray
. Мне интересно, почему. В С++ 0x кажется, что функция добавлена, но почему не в С++ 03?
Почему valarray не имеет функции подкачки, такой как вектор в С++ 03?
Ответ 1
Потому что это не так.
Я сомневаюсь, что есть гораздо лучший ответ. Ошибки и ошибки происходят (см. Также std::vector::resize
, принимая второй аргумент по значению, отсутствующий алгоритм std::copy_if
и очень длинный список закрытых дефектов стандартной библиотеки).
Хорошо, что язык продолжает развиваться и ошибки, подобные этому, могут быть исправлены в будущих версиях спецификации языка (например, С++ 0x).
Ответ 2
Потому что вы не предложили его языковому комитету.
Как только вы построите машину времени и доставьте свой запрос достаточно далеко до даты публикации стандартной публикации, чтобы он был включен, С++ 03 также будет иметь его.