#include "stdafx.h"
#include <iostream>
#include <stack>
#include <vector>
#include <cmath>
using namespace std;
void perenos(int a, int b, int c, vector< vector< stack<int>>> vector2)
{
for (int p = 0; p < a; p++)
for (int q = 0; q < b; q++)
{
for (int u = 0; u <= c / 2; u++)
{
vector2 [2 * a - p][2 * b - q].push(vector2[q].top());
vector2[q].pop();
}
}
}
int main()
{
int n = 0, k = 0, grpr = 1, grlv = 1, o = 0, ti = 1;
cin >> n;
stack<int> stack1;
vector< vector< stack<int>>> vector1(n);
o = (double)pow(2.0,(double)n);
for( int i=0; i<n; ++i) vector1.resize(n);
for (int i = 0; i < (double)pow(2.0,(double)n); i++)
{
stack1.push(k);
}
vector1 [1][1] = stack1;
for (int sch = 1; sch <= n; sch++)
{
perenos(grpr, grlv, o, vector1);
o /= 2;
if (ti % 2)
grpr *= 2;
else
grlv *= 2;
ti++;
}
for (int i = 0; i < (double)pow(2.0,(double)n); i++)
{
for (int j = 0; j < (double)pow(2.0,(double)n); j++)
{
cout << vector1[j].top();
}
cout << endl;
}
return 0;
}
двумерный вектор стеков
Написал, но пишет при выполнении vector subscrit out of range. В чем ошибка?
Код:
[COLOR="Red"]Оформляй код по Правилам.[/COLOR]модератор.