Подтвердить что ты не робот

Что такое версия Java ArrayList на С++

Просто вернусь к использованию С++ и попытаюсь преобразовать простую программу Java, которую я написал недавно.

Какой предпочтительный эквивалент Java ArrayList в С++?

4b9b3361

Ответ 1

Используйте std::vector класс из стандартной библиотеки.

Ответ 2

Несколько дополнительных точек используют vector здесь.

В отличие от ArrayList и Array в Java, вам не нужно делать что-либо особенное для обработки vector как массива - базовое хранилище на С++ гарантировано будет смежным и эффективно индексируемым.

В отличие от ArrayList, vector может эффективно удерживать примитивные типы без инкапсуляции как полнофункциональный объект.

При удалении элементов из vector имейте в виду, что элементы над удаленным элементом должны быть перемещены вниз, чтобы сохранить непрерывное хранилище. Это может стать дорогостоящим для больших контейнеров.

Убедитесь, что вы сохраняете сложные объекты в vector, что их конструктор копирования и операторы присваивания эффективны. Под обложками С++ STL использует их во время обслуживания контейнеров.

Советы по reserve() началу хранения вверх (т.е. при построении вектора или времени инициализации) для минимизации перераспределения памяти при последующем расширении переносятся с Java на С++.