У меня есть вектор из 100 строк и еще один пустой вектор, и я пытаюсь заполнить пустой вектор любой возможной комбинацией n строки из группы, состоящей из 100 (п = 1, 2, 3, ...)Как можно заполнить вектор со всеми возможными комбинациями строк из n векторной длины в языке программирования C++
Если п = 1, то вы получаете каждый уникальный вектор, состоящий из 1 строки (или все 100 строк в качестве векторов)
Если n = 2, вы получаете каждый уникальный вектор, состоящий из двух строк (или 100^2 вариаций)
C++ - это не мой родной язык.
У меня есть некоторые попытки до сих пор, и то, что я сделал бы в Zou_script (собственном собственном собственном), было бы присвоить каждой строке номер и затем переставить все возможные комбинации этих чисел, а затем ссылаться на отдельные строки через Vector [] для создания векторов.
Это кажется медленным и имеет недостаток элегантности, держа банк строчек в памяти может быть плохим, если банк струн был намного больше.
Я использовал std :: next_permutation, но у меня возникли проблемы с его элегантностью в сортировке векторов, состоящих из строк.
Как можно заполнить вектор со всеми возможными комбинациями строк из n векторной длины на языке программирования C++? < - Вопрос.
Может ли кто-нибудь помочь? Если вы не уверены или запуганы вопросом, то это нормально, чтобы перейти к следующему.
Update
мне удалось повторить технику в C++, но next_permutation значительно медленнее, потому что он не понимает, что не нужно вычислить весь вектор перестановок, только до п суммы.
Любой способ манипулировать next_permutation, чтобы вычислять только х элементов векторной перестановки?
Добро пожаловать в Переполнение стека. Пожалуйста, найдите время, чтобы прочитать [The Tour] (http://stackoverflow.com/tour) и обратитесь к материалу из [Справочного центра] (http://stackoverflow.com/help/asking) о том, что и как вы можете спросите здесь. –
Я предполагаю, что * петли * должны были бы генерировать каждую * перестановку * или * комбинацию *. Подсказка: поиск в Интернете для «примера перестановки C++» или «C++ генерировать пример комбинации». –
Вы уверены, что хотите заполнить вектор комбинацией * every * из набора из 100 записей? Это приведет к вектору около 1e + 158 записей, который редко вписывается в память обычной машины, не так ли? –