Гибридный вектор / связанный список C++
Есть ли стандартный контейнер в C++, который действует как гибрид между вектором и связанным списком. Я имею в виду структуру данных, которая преодолевает частые издержки перераспределения std::vector и потенциальное избыточное выделение памяти; вместо этого, когда структуре не хватает места, она добавляет указатель на следующий выделенный фрагмент, и только когда количество фрагментов достигает определенное значение, вся структура не фрагментируется в непрерывный новый фрагмент, а количество фрагментов возвращается к 0.
2 ответа
std::deque
это ближайший стандартный контейнер к тому, что вы описываете. Однако это не совсем так (например, это должен быть массив массивов, а не список массивов, поскольку последний не разрешает доступ к элементу с постоянным временем).
В зависимости от ваших практических требований, это может быть достаточно близко.
Как уже говорилось, std::deque
приближается к вашим требованиям. Я просто хочу добавить это сравнение между std::vector
а также std::deque
который я нашел очень полезным. Углубленное исследование Deque Container STL