Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

двумерный вектор стеков

42K
01 октября 2008 года
Fatkh
1 / / 30.09.2008
Помогите, пожалуйста. Язык - С++. Задача: Клетчатый лист 2^n на 2^n. Его сворачивают пополам поочередно с разных сторон до того, как будет стопка из одной клетки. Она будет в известном уголке. Дальше стопку нумеруют сверху вниз и разворачивают обратно так же. Определить, как лягут числа на листе.
Написал, но пишет при выполнении vector subscrit out of range. В чем ошибка?

Код:
#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;
}


[COLOR="Red"]Оформляй код по Правилам.[/COLOR]модератор.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог