2013-10-25 2 views
0

Это, наверное, немой вопрос, мне просто нужны некоторые предложения. У меня есть вектор вектора ints, называемого map, который содержит целочисленное значение и, очевидно, имеет местоположение, которое будет соответствовать местоположению на карте. То, что я пытаюсь сделать, это создать Deque из структур под названием gridLocВставка в контейнеры

struct gridLoc{ 
    int x; 
    int y; 
    int rubble; 
}; 

То, что я обнаружил, что вы не можете создать структуру gridLoc х, толкать его на дека, а затем изменить что х и толчок это на deque снова и имеют две разные структуры в deque. Какой был бы лучший способ получить любое количество различных структур внутри deque? Мне нужно создать массив структур и просто вставить разные индексы массива. Мой класс большой по времени и памяти, поэтому я стараюсь думать о том, как это сделать.

+1

Почему у вас не может быть 'deque'' gridLoc'? – deepmax

ответ

1

Это работает просто отлично:

#include <deque> 

struct gridLoc{ 
    int x; 
    int y; 
    int rubble; 
}; 

int main() { 
    std::deque<gridLoc> locations; 

    for (int i=0; i<10; ++i) { 
     gridLoc x = {i, i, i%2}; 
     locations.push_back(x); 
    } 
} 
1

На самом деле, так как все функции вставки сделать копию вставляемых элементов, вы можете делать то, что вы пытаетесь сделать. Проверьте, не пытаетесь ли вы нажимать фактические объекты, а не указатели.

+0

oh wow спасибо, не могу поверить, что я ответил на свой вопрос! –