Dynamisk allokering

C/C++

5 svar · 312 visningar · startad av Nexus86

Medlem sedan okt. 20023 030 inlägg
Trådstart#1

Kan jag allokera tvådimenosionella arrayer dynamiskt med exempelvis new? Eller kan jag skapa tvådimensionella vektorer? Detta fungerar iaf inte. :l

vector<vector<int>> MapData;
Medlem sedan juni 20008 205 inlägg
#2

Jo, men >> är en operator i C++. Släng in ett mellanslag så funkar det bättre:

vector<vector<int> > MapData;
Medlem sedan okt. 20023 030 inlägg
#3

Jaha! Glömde det. :p

Tackar!

Medlem sedan okt. 20023 030 inlägg
#4

Hur blir koden sedan då? :o

vector<vector<int> > MapData;

MapData.push_back(new vector<int>);

Detta är förmodligen fel men hur ska det vara? :q

Medlem sedan juni 20008 205 inlägg
#5

Det borde(?) funka så här:

vector< vector<int> > MapData(10);

Då skapar den en vector bestående av 10 tomma vector<int>. Vill du lägga till efterhand borde det räcka med MapData.push_back(vector<int>()) om jag inte misstar mig. Du kan inte göra MapData.push_back(new vector<int>()) eftersom new vector<int>() resulterar i en vector<int>*, vilket du ju inte kan lagra i en vector< vector<int> >

Medlem sedan okt. 20023 030 inlägg
#6

Jaha! Tackar! Ska prova detta. :)

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)