Rassembler les valeurs identique
bayefalle
Messages postés
148
Statut
Membre
-
paly2 Messages postés 261 Statut Membre -
paly2 Messages postés 261 Statut Membre -
Bonjour tous le monde,
J'ai un fichier qui s'affiche comme:
1 9
3 7
12 65
1 4
5 6
11 98
12 22
je veux que mon programme m'affiche:
1 (9,4)
12(65,22)
Merci de m'aider s'il vous plait.
J'ai un fichier qui s'affiche comme:
1 9
3 7
12 65
1 4
5 6
11 98
12 22
je veux que mon programme m'affiche:
1 (9,4)
12(65,22)
Merci de m'aider s'il vous plait.
A voir également:
- Rassembler les valeurs identique
- Site identique a coco - Accueil - Réseaux sociaux
- Excel liste de valeurs - Guide
- Comment rassembler plusieurs fichiers pdf en un seul - Guide
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Nvidia impossible de récupérer les valeurs actuelles - Forum Jeux PC
5 réponses
A tout hasard, un petit rappel :
CCM ne fait pas les exercices !.. De l'aide peut être demandée si on montre l'avancée du travail qu'on a soi-même réalisé.
J'avais commencé à utiliser les structures.
illustration:
rec.dest rec.src
1 9
3 7
12 65
1 4
5 6
11 98
12 22
il faut que je parcourt la colonne rec.dest et recupérer les valeur qui viennent au moins deux fois et de les afficher avec leurs correspondances du colonne 2:
1 (9,4)
12(65,22)
struct CHInfo
{
int src;
int dest;
};
CHInfo rec;
rec.src = atoi(netPacket->getSource());
rec.dest = id;
CHcandidates.push_back(rec);
illustration:
rec.dest rec.src
1 9
3 7
12 65
1 4
5 6
11 98
12 22
il faut que je parcourt la colonne rec.dest et recupérer les valeur qui viennent au moins deux fois et de les afficher avec leurs correspondances du colonne 2:
1 (9,4)
12(65,22)
https://forums.commentcamarche.net/forum/affich-33575444-afficher-le-contenu-des-cellules-identique-dans-un-tableau-en-c
Visiblement la seule différence entre les deux sujets est le language, du C au C++...
La curiosité est une excellente qualité !
Visiblement la seule différence entre les deux sujets est le language, du C au C++...
La curiosité est une excellente qualité !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
En C++, c'est beaucoup plus simple qu'en C une utilisant la map<> qu'a proposé gravgun.
En C++, c'est beaucoup plus simple qu'en C une utilisant la map<> qu'a proposé gravgun.
std::map<int,std::vector<int>> donneesClassees;
// classer les éléments à partir de src, leur associer la liste des dest correspondantes
for ( auto const& rec : CHcandidate )
donneesClassees[rec.src].push_back( rec.dest );
// il ne reste qu'à tracer chaque élément du dictionnaire qui a plusieurs dest
for ( auto const& itm : donneesClassees ) {
if ( itm.second.size() > 1u ) { // plusieurs dest pour un src
std::cout << itm.first << " (";
for ( auto idst = itm.second.cbegin() ; ; )
std::cout << *idst;
if ( ++idst != itm.second.cend() )
std::cout << " , "; // séparateur avant le prochain
else
break; // dernier élément, on arrête
}
std::cout << " )\n";
}
}
Peut-être que ton compilateur est trop vieux pour supporter les "range-based" for.
Essaie:
Ou (au choix)
Il faut aussi que tu fasses la modification pour la deuxième boucle for de ce type.
Note: j'ai horreur de
Essaie:
for (int i = 0 ; i < CHcandidate.size() ; i++)
donneesClassees[CHcandidate[i].src].push_back( CHcandidate[i].dest );
Ou (au choix)
for (std::vector<int>::iterator rec = CHcandidate.begin() ; rec < CHcandidate.end() ; rec++)
donneesClassees[rec->src].push_back( rec->dest );
Il faut aussi que tu fasses la modification pour la deuxième boucle for de ce type.
Note: j'ai horreur de
auto.