Hello, Kingofastellarwar, you wrote: K> and in there is generally a container which works as a vector, but at removal of an element does not shift the data, and simply remembers that here is empty, and the following insertion makes in this place And what operations generally are required? index-access? Bypass of all live? K> type as the list of a current without constant separation/removals of storage of Stepans was told that by him such and wanted to make initial list, and further sets an example implementation list_pool - just some lists over one vector. It is possible to take normal std:: list, two are more exact - in one there will be live elements, and in the second empty/dead. When it is necessary new - you do std:: list:: splice for transfer of a node of one list in another. That there was no constant separation of storage (at shortage of empty nodes) - beforehand fill the list-donor with the necessary amount of empty elements. But the decision on basis vector' would be natural better. It is possible to take Boost. Pool - there inside there is an implementation on basis +freelist - it can be combined with std:: list, or to use directly.