c++ tableau multidimensionnel plusieurs types de données
Je suis en train de créer un tableau multidimensionnel en c++ où il y a une chaîne de caractères et un entier (int) impliqués. J'ai essayé int test[1][2] = {{"a", 1}, {"b", 2}, {"c", 3}};
mais g++ m'a donné le suivant:
example.cpp: In function ‘int getServer(std::string)’:
error: too many initializers for ‘int [1][2]’
error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]
J'ai essayé d'utiliser char test[1][2]
aussi bien pour l'initialiseur, mais cela n'a pas fonctionné.
Edit: Cela va devenir un grand tableau multidimensionnel et il est nécessaire de sorte que je puisse obtenir des valeurs et de magasin basé sur une variable de contrôle de boucle qui va varier en longueur.
- Êtes-vous en correspondance un à l'autre ou de stockage des paires?
- en fait, d'essayer de les stocker dans des paires d'accéder à chaque valeur de faire quelque chose comme
test[0][0]
Vous devez vous connecter pour publier un commentaire.
Utilisation
std::pair
:std::pair
travaille avec C++03, mais l'initialisation et le type de tableau que j'ai utilisé le C++11. Vous pouvez toujours utiliser un tableau normal et un tas destd::make_pair
appels.Maintenant, vous pouvez accéder à chaque intérieur de l'élément avec un index et
first
ousecond
:while (i <= 10) { test[0][i]; i++; }
test.size()
. Comme pour vos autres exemple, les paires ne comportent que deux "éléments", donci <= 10
ne fait pas de sens. Et avec seulement deux, je ne peux pas imaginer pourquoi vous serait spécifiquement rend plus difficile à utiliser[i]
que juste.first
, suivie par.second
.while (length < test.size()) { variable += test[variable2][1]; variable++; }
est un exemple de la partie de cette formule.[1]
à une constante.second
.Ce n'est pas autorisé en c++. Un tableau peut avoir qu'un seul type, de sorte que la spécification d'un tableau avec deux types comme ça ne fait pas sens.
Mon idée de le faire, ce serait de définir une structure (struct):
Et ensuite définir un tableau unidimensionnel de type pair. Alors accéder à vos éléments comme
array[0].s
En général, cela ne devrait pas être fait en C++. Si vous êtes associe dans ce cas des paires de caractères et entiers, par exemple), et que vous voulez dans un tableau, vous devez utiliser une simple structure d'associer les deux, comme
Puis l'utiliser comme ceci:
Ce n'est généralement plus un C style. Vous souhaitez peut-être également envisager de faire une classe qui contient les informations que vous souhaitez, et l'utilisation de la STL collections, comme le
Vector
classe.