Мне нужна помощь. У меня есть 1-D массив со следующей информацией:Создайте массив из другого массива C++
1, 17, 2, 18, 3, 19, 1, 17, 2, 18, 3, 19, 1, 17, 2, 18, 3, 19, 1, 17, 2, 18, 3, 19
Как вы можете видеть, есть в общей сложности 24 элементов в массиве. Теперь первые два элемента (1, 17) можно рассматривать как пару, так что в основном мы имеем пару (1, 17), (2, 18), (3, 19)
в одном блоке. И у нас есть всего 4 блока, которые дают массив выше.
Теперь я должен организовать массив таким образом, что его элементы в следующем порядке:
1, 17, 1, 17, 1, 17, 1, 17, 2, 18, 2, 18, 2, 18, 2, 18, 3, 19, 3, 19, 3, 19, 3, 19.
Как вы можете видеть, что я должен выбрать первую пару, вставить ее в 4 раза (4 является количество блоков, которые у нас есть), а затем перейти к следующей паре (2, 18)
, вставить ее 4 раза и продолжить.
Теперь количество блоков и количество пар могут быть динамическими. Например, если у меня есть 3 блока и 4 пары,
Оригинальный массив будет выглядеть следующим образом:
1, 17, 2, 18, 3, 19, 4, 20 1, 17, 2, 18, 3, 19, 4, 20, 1, 17, 2, 18, 3, 19, 4, 20
И желаемая массив будет выглядеть следующим образом:
1, 17, 1, 17, 1, 17, 2, 18, 2, 18, 2, 18, 3, 19, 3, 19, 3, 19, 4, 20, 4, 20, 4, 20.
Другой пример,
Если у меня есть два блока и пять пар:
Оригинальный массив будет:
1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21,
Желаемая массив будет:
1, 17, 1, 17, 2, 18, 2, 18, 3, 19, 3, 19, 4, 20, 4, 20, 5, 21, 5, 21.
Может кто-нибудь помочь мне с этим.? Я буду очень признателен.
Благодаря
Я думаю, вы должны make_pair для каждого из двух элементов, вставить их в вектор, а затем сортировать его по первому элементу каждой пары. альтернативно просто вставьте пары (из каждых двух элементов) в мультимагу –
Мы не генератор алгоритмов! –
'std :: sort' на' std :: pair' ... – Jarod42