Я бы предпочел использовать реализацию списка вместо вектора.Вектор является потокобезопасным, но из-за этого он несет некоторые накладные расходы.Список не является потокобезопасным, но вы всегда можете синхронизировать каждый вызов для добавления, удаления и получения элементов.
Набор будет иметь странное поведение, как сказал Касабланка, если вы пытаетесь получить свои элементы в определенномпорядок.Кроме того, набор будет действовать как таковой и никогда не позволит вам повторять элементы в случае необходимости.
Оба предназначены для разных видов действий: векторы и списки предназначены для одних и тех же задач, реализованы по-разному.Набор будет только для тех случаев, когда вам нужно, чтобы он функционировал как набор.