Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Vector dwuwymiarowy, wypełnienie obiektami


Rekomendowane odpowiedzi

Opublikowano

Niby w tablicy potrafię stworzyć planszę wypełnioną polami, ale niestety jeśli chodzi to na parę sposób wywala mi różne błędy.

 

 

ogólnie mój kod metody wygląda tak ( tak wiem, że jest źle, no ale jakiś szkielet musiałem wstawić :D ):

void Strip::createStrip()
{
    for(int i = 0; i < height; i++)
    {
        for(int j = 0; j < weight; j++)
        {
            Pole *c = new Pole();
            strip.push_back(c);
        }
        std::cout << std::endl;
    }
}

a vector w klasie wygląda tak:

std::vector<std::vector <Pole*> > strip;

pl ;)

Opublikowano

zrobiłeś pseudo-dwuwymiarowego vectora (zagnieżdżonego). Czyli masz vector vectorów.

A w pętli próbujesz wrzucić obiekt klasy Pole tam, gdzie powinien być wektor z tymi obiektami.

Musisz zrobić sobie tymczasowy wektor, w niego wrzucać obiekty klasy Pole, a potem wrzucić wektor z obiektami w wektor.

 

 

#include <iostream>
#include <vector>

class A {
public:
    int id;
    A(int objID): id(objID) {}
};

int main() {
    std::vector< std::vector<A*> > v;
    int id = 0;
    
    for(int i = 0; i < 10; ++i)
    {
        std::vector<A*> tempV;
        for(int j = 0; j < 10; ++j)
        {
            A* obj = new A(++id);
            tempV.push_back(obj);
        }
        v.push_back(tempV);
    }
    
    for(auto &vec: v)
    {
        for(auto &o: vec)
            std::cout << o->id << " ";
        std::cout << std::endl;
    }
    return 0;
}

 

http://ideone.com/c70IKM

846331404756772371599.jpeg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...