Поскольку это связанный список, вам, вероятно, следует использовать std :: list ...
Практическое правило заключается в том, что вы хотите использовать связанный список, когда вам нужновставьте элементы в случайные позиции в списке или удалите случайные элементы из списка.Если вам в основном нужно добавлять / удалять элементы в конец списка, используйте std::vector
.Если вам нужно добавить / удалить элементы в начале или в конце списка, тогда вы должны использовать std::deque
.
Имейте в виду, мы говорим о вероятностях здесь.Если вам нужно вставить элемент в середину std::vector
один раз в синей луне, это, вероятно, будет в порядке.Но если вам нужно делать это все время, это окажет серьезное влияние на производительность, поскольку вектор должен будет постоянно перемещать свои элементы и, вероятно, перераспределять свою память.
С другой стороны,Преимущество использования вектора состоит в том, что его элементы непрерывны в памяти, что значительно повышает производительность, если вам просто необходимо пройти их по порядку из-за кэширования.