hem C++ ve bir karma dizisi oluşturmak mümkün mü C#Karışık C++ Diziler ve C#
Ben karakter ve int'leri hem içeren bir dizi demek?
örn:
Array [][] = {{'a',1},{'b',2},{'c',3}};
hem C++ ve bir karma dizisi oluşturmak mümkün mü C#Karışık C++ Diziler ve C#
Ben karakter ve int'leri hem içeren bir dizi demek?
örn:
Array [][] = {{'a',1},{'b',2},{'c',3}};
C++
hastayı yalnızca her demet içinde iki öğe varsa std::vector<boost::tuple< , , >
veya std::vector<std::pair>
gibi bir şey kullanmak gerekir. C++
durum için
Örnek: (boost::assign
kullanılarak) C++
durumu için
typedef std::pair<int, char> Pair;
std::vector<Pair> pairs;
pairs.push_back(Pair(0, 'c'));
pairs.push_back(Pair(1, 'a'));
pairs.push_back(Pair(42, 'b'));
Genişletilmiş bir örnek. C#
için
using boost::assign;
std::vector<Pair> pairs;
pairs += Pair(0, 'c'), Pair(1, 'a'), Pair(42, 'b');
C# ve C ise
this.
görmek isteyebilir ++ o karışık türleri dizisi oluşturmak mümkün değil. C++ 'da std :: vektörü veya # < char, int > C# gibi diğer sınıfları kullanmalısınız.
Ne C# ne de yerli diziler kullanarak veri yapısı bu tür oluşturarak C++ desteği, ancak C++ bir C# List<Tuple<char,int>>
veya std::vector<std::pair<char,int>>
oluşturabilir.
Öğelerden biri benzersiz bir anahtar olarak düşünülebiliyorsa ve öğelerin sırası önemsizdir, ancak yalnızca onların ilişkilendirmesi ise, Dictionary<>
veya std::map<>
koleksiyonlarını kullanmayı da düşünebilirsiniz.
List<Tuple<char,int>> items = new List<Tuple<char,int>>();
items.Add(new Tuple<char,int>('a', 1));
items.Add(new Tuple<char,int>('b', 2));
items.Add(new Tuple<char,int>('c', 3));
ve C aşağıdakileri yazarsınız ++: listelerinin (ziyade sözlükler yerine) durumunda için
, C# Eğer yazardımstd::vector<std::pair<char,int>> items; // you could typedef std::pair<char,int>
items.push_back(std::pair<char,int>('a', 1));
items.push_back(std::pair<char,int>('b', 2));
items.push_back(std::pair<char,int>('c', 3));
yerine stdlib'in size kolaylık sağladığını belirten std :: make_pair ('a', 1) kullanabilirsiniz :) – etarion
Neden Bir çift çift/tuple mı yapıyor? Tek seçeneğinin neden Liste/vektör'e geçmek olduğunu görmemin bir sebebi var mı? – jalf
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ –
klasik dizi (olanı Köşeli parantez) yalnızca kendi bildiriminin bir parçası olan int türünde olabilir. Dizi yok [].
Neden isterdiniz? – Beta
A char, C++ –