гибридный вектор / связанный список c ++ - PullRequest
5 голосов
/ 29 ноября 2011

Есть ли в c ++ контейнер std, который действует как гибрид между вектором и связанным списком.Я имею в виду структуру данных, которая преодолевает частые издержки перераспределения std :: vector и потенциальное избыточное выделение памяти; вместо этого, когда структуре не хватает места, она добавляет указатель на следующий выделенный фрагмент, и только когда количество фрагментов достигаетопределенное значение, вся структура не фрагментируется в непрерывный новый фрагмент, а количество фрагментов возвращается к 0.

Ответы [ 2 ]

4 голосов
/ 29 ноября 2011

Как уже говорилось, std::deque приближается к вашим требованиям.Я просто хочу добавить это сравнение между std::vector и std::deque, которое мне показалось очень полезным. Углубленное исследование Deque Container STL

3 голосов
/ 29 ноября 2011

std::deque является ближайшим стандартным контейнером к тому, что вы описываете. Однако это не точно , как это (например, это должен быть массив массивов, а не список массивов, поскольку последний не разрешит доступ к элементу постоянного времени).

В зависимости от ваших практических требований, оно может быть достаточно близко.

...