2014-01-30 4 views
1

Я пытаюсь использовать STL-стек, чтобы сохранить мои переменные. У меня есть две переменные, объявленные как векторный массив [8] [8] и массив int [8] [8]. Как объявить стек? Будет ли что-то вродеСоздание стека массивов и 2d массивов векторов

stack<vector<int>> array 
stack<int>array// not really sure how to use stacks at this point. 

Edit: Это то, что я хочу сделать:

class example 
{ 
    private: 
    vector<int> cells[8][8]//2d array of vectors, one vector for each of the 64 cells 
    int table[8][8]; //table of 64 elements 
    //here is what I want to implement 
    stack<int,vector<int>> cells_stack;// a stack of vectors so that I can backtrack on the vectors if inputs on the table are incorrect 
    stack<int> table_stack;//stack of array so that I can backtrack; 
}; 
+1

Пример кода можно найти [здесь] (http://www.cplusplus.com/ ссылка/стек/стек/стек /). –

+0

Я все еще смущен, потому что это относится только к одному вектору. 'vector table [8] [8]' 'int array [9] [9]' так что стек из массива 2d будет 'stack ', и векторы будут 'stack >'? Не нужно ли перечислять размер массивов, хранящихся в стеке? – user3251195

+0

Я не думаю, что понимаю, что вы пытаетесь сделать. В вашем вопросе вы объявляете две переменные 'stack': один из них представляет собой« стек »типа« vector », а другой -« stack »типа' int'. Вы хотите, чтобы обе они были сохранены в одном «стеке»? Возможно, вам было бы лучше написать код как можно лучше и добавить его в свой вопрос, чтобы у нас была начальная точка, которую мы можем обсудить. –

ответ

0

Если я правильно понимаю, вы хотите сохранить содержимое cells и table на стеков. Если это правильно, то то, что вы хотите сделать, объявляет ваши стеки точно так же, как объекты, которые вы хотите сохранить. Так как cells представляет собой массив 8x8 типа vector<int>, тогда это то, что должно содержать cells_stack. Например:

stack<vector<int>[8][8]> cells_stack; 

То же самое касается table_stack, который должен содержать 8x8 массивы типа int:

stack<int[8][8]> table_stack; 
+0

Спасибо, Кэри, это именно то, что я искал! Я бы дал вам репутацию, но у меня самого еще нет репутации 15, извините – user3251195

+0

Я просто устал делать стек и векторный стек, он дает мне очень длинное сообщение об ошибке, и я только объявил его в своем классе. – user3251195

+0

@ user3251195 Показать ошибку и сообщить нам, какой компилятор вы используете. –

Смежные вопросы