Jadi, saya punya yang berikut:
std::vector< std::vector <int> > fog;
dan saya memulainya dengan sangat naif seperti:
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);
}
Dan rasanya sangat salah ... Adakah cara lain untuk menginisialisasi vektor seperti ini?
std::vector<int>::max_size()
. Di siniJawaban:
Gunakan
std::vector::vector(count, value)
konstruktor yang menerima ukuran awal dan nilai default:Jika nilai selain nol, katakanlah
4
misalnya, harus dijadikan default maka:Saya juga harus menyebutkan inisialisasi seragam diperkenalkan di C ++ 11, yang memungkinkan inisialisasi
vector
, dan wadah lainnya, menggunakan{}
:sumber
std :: vector <std :: vector <int>>
sebagaistatic
?Misalkan Anda ingin menginisialisasi vektor 2D, m * n, dengan nilai awal 0
kita bisa melakukan ini
sumber
std::
membuatnya lebih panjang dan orang mungkin menyukai jawaban yang singkat dan langsung; 3) penamaan variabel yang panjang membingungkan pemula. Saya seorang pemula juga, tidak begitu tahu betapa pentingnya kita membutuhkanstd::
, membutuhkan kode yang dapat dijalankan jadi saya tahu apa yang dilakukan setiap variabelTidak ada
append
metode masukstd::vector
, tetapi jika Anda ingin membuat vektor yang berisiA_NUMBER
vektorint
, masing-masing berisiother_number
nol, maka Anda dapat melakukan ini:sumber
Sintaks umum, seperti yang sudah digambarkan adalah:
Di sini, vektor 'v' dapat divisualisasikan sebagai larik dua dimensi, dengan 'A_NUMBER' baris, dengan 'OTHER_NUMBER' kolom dengan nilai awalnya disetel ke 'DEFAULT_VALUE'.
Juga bisa ditulis seperti ini:
Memasukkan nilai dalam vektor 2-D mirip dengan memasukkan nilai dalam larik 2-D:
Contoh telah dinyatakan dalam jawaban lain ....!
sumber
Menurut saya cara termudah untuk melakukannya adalah:
10 adalah ukuran vektor luar atau global, yang merupakan yang utama, dan 11 adalah ukuran vektor bagian dalam tipe int, dan nilai awal diinisialisasi ke 100! Itu bantuan pertama saya di tumpukan, saya pikir itu membantu seseorang.
sumber
Misalkan Anda ingin menginisialisasi vektor integer dua dimensi dengan n baris dan kolom m masing-masing memiliki nilai ' VAL '
Tulis sebagai
VAL ini dapat berupa variabel tipe integer atau konstanta seperti 100
sumber
Pendekatan yang disarankan adalah menggunakan konstruktor isian untuk menginisialisasi vektor dua dimensi dengan nilai default yang diberikan:
di mana, M dan N adalah dimensi untuk vektor 2D Anda.
sumber
Saya
c++ STL
kode untuk menginisialisasinya5*3 2-D vector
denganzero
sumber