У меня есть отсортированный набор (точнее, std :: set), который содержит элементы с назначенным весом.Я хочу случайным образом выбрать N элементов из этого набора, в то время как элементы с более высоким весом должны иметь большую вероятность выбора.Любой элемент может быть выбран несколько раз.
Я хочу сделать это максимально эффективно - я хочу избежать любого копирования набора (он может стать очень большим) и запускаться во время O (N), есливозможно.Я использую C ++ и хотел бы придерживаться решения только для STL + Boost.
Кто-нибудь знает, есть ли в STL / Boost функция, которая выполняет эту задачу?Если нет, то как его реализовать?