Мне нужно настроить 1D-массив таким образом, чтобы он был гибким, чтобы переупорядочить, как при отбрасывании всех элементов k
раз каждые следующие n
элементов, а затем возврата к предыдущей структуре (вернуть удаленные элементы). Ниже приведен пример:Гибкий массив (или предлагать другую структуру данных)
p[10]={ //this is a one-dimensional array
1, 2, 3, 4, 5
4, 5 ,6, 7, 8}
//push each 'row' 2 units back, every 5 elements.
//"Row" here refers to the next nth element, here 5.
<del>, <del>, 3, 4, 5
<del>, <del> ,6, 7, 8
//New structure
<reserved>, <reserved>, 3, 4, 5
<reserved>, <reserved>, 6, 7, 8
//This is how it should look like in terms of data relevance,
//with the reserved spaces not shown.
3, 4, 5
6, 7, 8
Теперь p[0]
должны быть 3
и p[3]=6
.
Самый простой способ сделать это - создать новый массив с новыми элементами, но мне нужно сохранить старый и выполнить эти операции повторно в одном массиве, а затем вернуть его обратно в исходную структуру. Я думал, что может быть способ использования указателей, может быть, массив указателей, но я не совсем уверен. Если есть структура данных, которая делает это легко для меня, чем просьба указать мне.
Что случилось с 'std :: vector' или, возможно,' std :: deque'? –
Я не уверен в deque, но как бы я сделал это с помощью векторов? – user3140280
взгляните на 'std :: valarray' – bolov