Problème déclaration tuple<>
DodoFredo
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis débutant en C++ et j'ai un problème pour déclarer des tableaux...
Mes déclarations sont les suivantes:
std::set<char> ch;
std::tuple<int,int> dint;
std::tuple< ch,dint,dint> tab;
Cette dernière ligne pose problème...
Mon compilateur ne comprends mon code... Et je ne comprends pas mon erreur...
Est ce que quelqu'un pourrait m'aider ?
Bonne soirée
Je suis débutant en C++ et j'ai un problème pour déclarer des tableaux...
Mes déclarations sont les suivantes:
std::set<char> ch;
std::tuple<int,int> dint;
std::tuple< ch,dint,dint> tab;
Cette dernière ligne pose problème...
Mon compilateur ne comprends mon code... Et je ne comprends pas mon erreur...
Est ce que quelqu'un pourrait m'aider ?
Bonne soirée
A voir également:
- Problème déclaration tuple<>
- Déclaration - Guide
- En plus des revenus, il ne faut surtout pas oublier de faire cette déclaration en ligne aux impôts - Guide
- L'erreur qui peut coûter cher : il ne faut pas déclarer ces revenus aux impôts - Guide
- Vous devez absolument lire ce document des impôts avant de remplir votre déclaration de revenus - Guide
- Une très mauvaise surprise vous attend si vous avez fait une erreur dans votre déclaration de revenus cette année - Guide
8 réponses
Bonsoir
pour poster du code dans tes prochains message, merci d'appliquer ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
La déclaration d'un tuple doit contenir entre les <> des types, or dint n'est pas un type.
Et un tuple, c'est pas un tableau.
pour poster du code dans tes prochains message, merci d'appliquer ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
La déclaration d'un tuple doit contenir entre les <> des types, or dint n'est pas un type.
Et un tuple, c'est pas un tableau.
Bonsoir,
Merci de votre répons.
Est ce qu'il est possible en C++ de faire un tableau de tuple ?
Pour accueillir un int puis un char puis un int ?
Par exemple :
Merci de votre répons.
Est ce qu'il est possible en C++ de faire un tableau de tuple ?
Pour accueillir un int puis un char puis un int ?
Par exemple :
std:set<std::tuple< int,char,int>> tab;
je code assez peu (et mal) en C++, mais pour
C'est le rôle d'un tuple que d'accueillir différents type
Pour accueillir un int puis un char puis un int ?il ne me semble pas opportun de faire un tableau de tuple ou un tuple de tuple.
C'est le rôle d'un tuple que d'accueillir différents type
std::tuple<int,char, int> monTuple;
Bonjour,
Il faudrait peut-être que tu précises ton besoin car les tuples c'est fait pour des traitements intermédiaires anonymes. Si tu sais ce que tu vas mettre dedans (par exemple
Est-ce que qu'on peut faire un tableau de tuple? Oui. Et il existe plein de possibilités. exemple :
Voilà un tuple initialisé (ça n'est pas un tableau, c'est un n-uplet) :
Dans l'exemple que tu donnes
Pourquoi veux tu des
Pourquoi veux tu des
Pourquoi veux tu des tableaux?
Il faudrait peut-être que tu précises ton besoin car les tuples c'est fait pour des traitements intermédiaires anonymes. Si tu sais ce que tu vas mettre dedans (par exemple
int,
charet
int), alors tu n'as certainement pas besoin d'un tuple. Tu devrais utiliser une structure.
Est-ce que qu'on peut faire un tableau de tuple? Oui. Et il existe plein de possibilités. exemple :
std::vector<std::tuple<int,char,int>>est bien un tableau de n-uplets. Mais ai-je bien compris? Où t'es tu bien exprimé?
Voilà un tuple initialisé (ça n'est pas un tableau, c'est un n-uplet) :
std::tuple<int,char,int> un_n_uplet = std::make_tuple( 1, '2', 3 );
Dans l'exemple que tu donnes
std::set<std::tuple<int,char,int>> tab;, tu veux mettre un n-uplet dans un ensemble. Ça n'a pas de sens car un ensemble ça contient des éléments qui sont uniques et ordonnés, or on ne peut normalement pas ordonner des tuples (est-ce que le n-uplet {1,'a',7} est plus grand que le n-uplet {1,'x',2} ?)
Pourquoi veux tu des
std::tuple<>?
Pourquoi veux tu des
std::set<>?
Pourquoi veux tu des tableaux?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
Merci pour vos réponses !
Mon problème est :
Je dois aller d'un point A à un point B par une route C
Les points sont matérialisé par un entier (int) et le chemin par une lettre (char)
Donc pour ca, j'ai créer :
- un tableau set pour les routes, qui n'a pas besoin d'organisation/d'indice
- un tableau de point qui est caractérisé par son nom (entier) et d'autres caractéristiques (int)
Et le tableau que je n'arrive pas a créer et le tableau qui caractérise un 'chemin' d'un point A à un point B par une route C
Et j'ai donc pensé à faire un tableau de <int,char,int> mais je n'arrive pas à le faire...
Merci pour vos réponses !
Mon problème est :
Je dois aller d'un point A à un point B par une route C
Les points sont matérialisé par un entier (int) et le chemin par une lettre (char)
Donc pour ca, j'ai créer :
- un tableau set pour les routes, qui n'a pas besoin d'organisation/d'indice
- un tableau de point qui est caractérisé par son nom (entier) et d'autres caractéristiques (int)
Et le tableau que je n'arrive pas a créer et le tableau qui caractérise un 'chemin' d'un point A à un point B par une route C
Et j'ai donc pensé à faire un tableau de <int,char,int> mais je n'arrive pas à le faire...
setn'est pas un tableau c'est un ensemble.
et pour grouper un point, une route et un point, il faut une structure comme ça ils auront un nom, c'est bien mieux qu'un tuple.
#include <vector> #include <algorithm> struct Chemin { int debut; char route; int fin; }; std::vector<Chemin> creerLesChemins(){ std::vector<Chemin> tousLesChemins; tousLesChemins.push_back( {1,'x',2} ); // ajout de la route 'x' qui mène de 1 à 2. tousLesChemins.push_back( {3,'y',4} ); // ajout de la route 'y' qui mène de 3 à 4. return tousLesChemins; } std::vector<Chemin> trouverLesCheminsPartantDe(std::vector<Chemin>const& lesChemins, int deb) { std::vector<Chemin> res; std::copy_if( lesChemins.begin(), lesChemins.end(), std::back_inserter(res) , [deb](auto& chm){return deb==chm.debut;} ); return res; }