2011-12-20 22 views
5

Dizgisi olan bir türü nasıl belirlersiniz? Yani:Dizgeyle vektör türünü belirtin

string s = "int"; 
Vector<s> vec; 

Ve vector<int> olmak vec istiyorum. Bu mümkün mü?

Kullanıcının bir dize yazabileceği bir sınıf oluşturmak istiyorum ve bu tür bir vektör oluşturulacak.

+0

Bir çeşit varyant veri türüne ihtiyacınız vardır. –

cevap

5

C++ 'da mümkün değil, en azından istediğiniz gibi değil. Kullanıcı girişi zamanı kavramı ise

Şablonlar, bir derleme zamanı kavramdır. Tamamen farklı, karıştırılamaz.

Bu işi yapmak için, C++ olan dinamik olarak yazılan bir dile ihtiyacınız vardır. Statik olarak yazılmıştır.

+0

Tamam, ama bunu yapmak istiyorum çünkü çok boyutlu bir vektör uygulamak istiyorum, http://stackoverflow.com/questions/8579207/hypercube-c-multidimensional-vectros. Herhangi bir ipucu? – shizzle

3

Bu mümkün mü?

Bu, C++ uygulamasında mümkün değildir. Destek seçeneği bir seçenek ise, bunun yerine boost::variant nesnesinin bir vektörünü oluşturmayı düşünün: Bu şekilde, statik olarak yazdığınız vector farklı türlerdeki öğeleri kabul etmeye hazır olacaktır.