Разбить массив на подмассивы. [1,2,3] на [1,2], [2,3] , [1,3] C++

программирование С++ Массивы множества подмножества

Добрый день.

Как Разбить массив на подмассивы.
Например A={1,2,3} на
[1,2]
[2,3]
[1,3]

язык C++


Примечание:
#include <cstdlib>
#include <iostream>
const int n=3;
using namespace std;

int main(int argc, char *argv[])
{
int **slices = new int*; // Dynamic array of int
*slices = new int[n]; // n - кол-во элементов исходного массива
int entity[n]={1,2,3};
for (int i = 0; i < n; i++)
{
slices[i] = new int[2];
slices[i][0] = entity[i]; // entity - исходный массив данных
slices[i][1] = ((i + 1 < n) ? entity[i + 1] : entity[0]); // Циклический сдвиг
cout<<slices;
}


system("PAUSE");
return EXIT_SUCCESS;
}



Yorie ,
к сожалению, не работает.

Примечание:
cout<<slices[i][0]<<" ";
cout<<slices[i][1]<<" ";
cout<<slices[i][2]<<" ";

тоже..
Ответы:
int **slices = new int*; // Dynamic array of int
*slices = new int[n]; // n - кол-во элементов исходного массива
for (int i = 0; i < n; i++)
{
 slices[i] = new int[2];
 slices[i][0] = entity[i]; // entity - исходный массив данных
 slices[i][1] = ((i + 1 < n) ? entity[i + 1] : entity[0]); // Циклический сдвиг
}
Yorie - алгоритм не оптимальный :)
Надо дописать разбивку на все массивы длиной меньше n
какой принцип разбиения:
куски одинакового размера?
разбиение идет подряд?
порядок не имеет значение? [1,3] == [3,1]
если ответы да.да.да. тогда проще выделить массив [N+slice_size], скопировать в него оригинальный массив + <sliсe_size> его первых элементов в конец. После этого ссылаться на вершины срезов через массив указателей.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.