STL не имеет встроенной поддержки потоков, поэтому вам придется расширять STL
код с вашими собственными механизмами синхронизации для использования STL в
многопоточная среда.
Например, посмотрите здесь: текст ссылки
Поскольку set - это контейнерный класс, MSDN должен сказать о безопасности потоков в контейнерах.
Один объект является поточно-ориентированным для чтения из нескольких потоков. Например, для объекта A безопасно считывать A из потока 1 и из потока 2 одновременно.
Если один объект записывается одним потоком, то все операции чтения и записи в этот объект в том же или других потоках должны быть защищены. Например, если для объекта A задан поток 1, записывающий в A, то поток 2 должен быть запрещен для чтения или записи в A.
Безопасно читать и записывать в один экземпляр типа, даже если другой поток читает или записывает в другой экземпляр того же типа. Например, для объектов A и B одного типа безопасно, если A записывается в потоке 1, а B читается в потоке 2.