2012-12-05 25 views
8

elementleri eklerken merak uyandıran davranış bana yardım etmekten başka bir seçeneğim yok.Vektörler Dizisi C++ - google ve stackoverflow araması için

Bir dizi vektör kullanmak istiyorum - bu dizinin yalnızca iki vektör içermesi gerektiğini biliyorum. Şimdi kullandığım dizide yer alan ilk vektör bir Eleman eklemek istediğinizde Böylece

vector<double> testVect[1]; 

testVect[0].push_back(0); 

Şimdiye kadar herşey yolunda görünüyor - ne yazık ki bir türlü de ekler birinci vektöre bir Eleman ekleme Aynı eleman (bu durumda 0) ikinci vektöre de.

Bu tür davranışların nedenini bana anlatabilir misiniz? (lütfen) - ve belki de bir çözüm. Şu anda Visual Studio 6 kullanmak zorunda (işveren yeni derleyici yüklenmez - Zaten arkadaşlarımı yukarı riling ediyorum: D

+3

'vektör sınama [1];' yalnızca bir vektör oluşturur. Maksimum bir "0" indeksi olan bir vektör dizisi. Sizi ikinci bir unsur olduğunu ya da push_back'den de etkileneceğini düşündüren nedir? –

+0

Bir vektörün elementlere erişmesiyle başlamayı karıştırdım. C++ 'da vektör elemanları 0 ile saymaya başlar. Böylece bir vektör 2 eleman içeriyorsa ilk vektöre [0] ulaşırsınız. Bu yüzden testVect [1] yazısının iki vektör dizisi ile sonuçlanacağını düşündüm. Teşekkürler :) –

+0

tekrar düşürülüyor - bu sefer belirgin bir sebep yok ... Bazen insanlar kafasını karıştırıyor. –

cevap

16

iki vektörleri istiyorsanız, ilan etmeli:

vector<double> testVect[2]; 

sonra

. kodunuzda testVect[0] ve testVect[1] kullanmak ve derleyici tüm uyarıları imkan vermelidir.

BTW, bir son GCC derleyicisi ile, son zamanlarda Linux dağıtımı yükleyebilir (örn 4.7) ve g++ -Wall -g olarak çalıştırın, statik olarak testVect erişim sınırına eriştiyseniz sizi uyarmışsınız gibi görünüyor.

Hem GNU/Linux hem de GCC ücretsizdir, dolayısıyla yöneticiniz mutlu olabilir.

+0

lol güzel yakaladı! –

+0

hmm Açık istemcim yok ve BT departmanına yalvarıyor olmadan herhangi bir yazılımı yükleyemezsiniz. İlk olarak :(Öneriniz için teşekkürler :) –

+0

okey tüm uyarıları etkinleştirmenizi sağlar - tekrar teşekkürler –