Mam więc następujące rzeczy:
std::vector< std::vector <int> > fog;
i inicjalizuję go bardzo naiwnie:
for(int i=0; i<A_NUMBER; i++)
{
std::vector <int> fogRow;
for(int j=0; j<OTHER_NUMBER; j++)
{
fogRow.push_back( 0 );
}
fog.push_back(fogRow);
}
I czuje się bardzo źle ... Czy jest inny sposób inicjalizacji takiego wektora?
std::vector<int>::max_size()
. TutajOdpowiedzi:
Użyj
std::vector::vector(count, value)
konstruktora, który akceptuje rozmiar początkowy i wartość domyślną:Jeśli wartość inna niż zero,
4
na przykład, musiała być wartością domyślną, to:Powinienem również wspomnieć, że jednolita inicjalizacja została wprowadzona w C ++ 11, co pozwala na inicjalizację
vector
i innych kontenerów przy użyciu{}
:źródło
std :: vector <std :: vector <int>>
asstatic
?Powiedzmy, że chcesz zainicjować wektor 2D, m * n, z wartością początkową równą 0
moglibyśmy to zrobić
źródło
std::
wydłuża go i ludzie mogą chcieć krótkiej i bezpośredniej odpowiedzi; 3) Długie nazewnictwo zmiennych dezorientuje początkujących. Jestem też początkującym, nie bardzo wiem, jak ważny jest nam potrzebnystd::
kod, potrzebuję kodu do uruchomienia, więc wiem, co robi każda zmiennaW programie nie ma
append
metodystd::vector
, ale jeśli chcesz utworzyć wektor zawierającyA_NUMBER
wektoryint
, każdy z tych zawierającychother_number
zera, możesz to zrobić:źródło
Ogólna składnia, jak już przedstawiono, to:
Tutaj wektor „v” można wizualizować jako dwuwymiarową tablicę, zawierającą „A_NUMBER” wierszy, z „OTHER_NUMBER” kolumnami i ich początkową wartością ustawioną na „DEFAULT_VALUE”.
Można to również zapisać w ten sposób:
Wprowadzanie wartości w wektorze 2-w jest podobne do wprowadzania wartości w tablicy 2-W:
Przykłady zostały już podane w innych odpowiedziach ....!
źródło
Myślę, że najłatwiej to zrobić:
10 to rozmiar zewnętrznego lub globalnego wektora, który jest głównym, a 11 to rozmiar wewnętrznego wektora typu int, a wartości początkowe są inicjalizowane na 100! To moja pierwsza pomoc na stosie, myślę, że pomaga to komuś.
źródło
Załóżmy, że chcesz zainicjalizować dwuwymiarowy wektor liczb całkowitych z n wierszami im kolumnami, z których każdy ma wartość „ VAL ”
Napisz to jako
Ta VAL może być zmienną typu integer lub stałą, na przykład 100
źródło
Zalecanym podejściem jest użycie konstruktora wypełnienia do zainicjowania dwuwymiarowego wektora z podaną wartością domyślną:
gdzie, M i N są wymiarami twojego wektora 2D.
źródło
Mój
c++ STL
kod do zainicjowania5*3 2-D vector
zzero
źródło