webForumDet fria alternativet

Dynamisk allokering

C/C++

5 svar · 291 visningar · startad av Nexus86

Medlem sedan okt. 20023 030 inlägg
Frågan#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. :)

251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)