SORU
16 Kasım 2008, Pazar


C vektörleri, genel vektör

C iyi bir yol (veya) sahte vektörler genel bir vektör için bir tür uygulamak var mı?

Vektörler bir vektör iyi bir fikir olduğunda sorunu her zaman daha iyi olan eşdeğer bir şey var sürece) görmezden. Sorun model bu mu doğru olan ve bir matris sorunun doğru olarak model olmadığını varsayalım. Varsayalım ayrıca bu sadece genel bir tür [][] destek alamazlar yani fonksiyonları parametreleri yapısını değiştirmek gerekiyor mu bu gibi şeyler alarak (Örneğin arama push_back) şablonu esas alan,.

Yapmak istediğim şey:

template<typename T>
typedef vector< vector<T> > vecvec;

vecvec<int> intSequences;
vecvec<string> stringSequences;

ama tabii ki typedef şablonu esas alan bu mümkün değil.

#define vecvec(T) vector< vector<T> >

bulunur, ve vecvecs çalışır, ama çoğu C programcıları ile popüler olduğu kadar her şablon çalışması türünü çoğaltarak kaydetmek istiyorsunuz.

CEVAP
16 Kasım 2008, Pazar


Şablon-typedefs istiyorum.değilhenüz geçerli C destekledi . Geçici bir çözüm yapmak

template<typename T>
struct vecvec {
     typedef std::vector< std::vector<T> > type;
};

int main() {
    vecvec<int>::type intSequences;
    vecvec<std::string>::type stringSequences;
}

Bir sonraki C (c 0, c 1x 2010 nedeniyle denir), bu mümkün olacaktır:

template<typename T>
using vecvec = std::vector< std::vector<T> >;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • ElChakotay Andrich

    ElChakotay A

    10 EKİM 2013
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009