salut :)
j'ai besoin de definir un boucle qui repete une instruction pour des valeurs distinctes , par exemple : 1..5 puis 7..60 etc
merci
Version imprimable
salut :)
j'ai besoin de definir un boucle qui repete une instruction pour des valeurs distinctes , par exemple : 1..5 puis 7..60 etc
merci
1..5 => valeur entière comprise entre 1 et 5?
oui c'est ce que je veux dire , alors comment faire ? :)
Code:
1
2
3
4
5
6
7
8 void myLoop(int min, int max) { int i; for (i = min; i < max; ++i) my_func(); }
merci mais c'est pas ca !
comme tu as a dit j'ai besoin de plusieurs boucles , mois je veux repeter chaque instructions pour des nombres discrets(l'instruction contient le i) .
je veux ecrire en c ou c++ c la meme chose la :
repeter pour i appartenant a l'ensemble {1,5,6,10} l'instruction
on peut faire ca avec le shell sous linux mais en c je ne sais pas comment le faire :(
Les nombres sur lesquels tu veux itérer sont-ils stockés dans un conteneur? Sous quel forme? Les nombres sont-ils stockés sous forme de plage (1 à 5, 7 à 9, 23 à 62), ou il y a toutes les valeurs, (comme "for i in 1 2 3 4 5 7 8 9" du shell) ?
Salut,
Une possibilité est de regrouper les valeurs qui t'intéressent au sein d'un tableau d'entiers, soit, sous la forme "gravée dans le marbre" de
soit sous la forme bien préférable d'un vecteur d'entiersCode:size_t tab[]={1,5,7,9,123};
Par la suite, tu peux envisager une boucle sous la forme deCode:
1
2
3
4
5
6 std::vector<size_t> tab; tab.push_back(1); tab.push_back(5); tab.push_back(7); tab.push_back(9); tab.push_back(123);
(en considérant la deuxième solution)Code:
1
2
3
4
5
6
7 for(size_t i = 0; i<tab.size();++i) { for(size_t j = 0;j<tab[i];++j) { // ce qu'il faut faire } }
Une autre possibilité, en fonction de ce que tu veux faire, est de voir s'il n'est pas envisageable de penser à la récursivité, sous une forme proche de
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void foo( size_t value) { /* toujours tester le cas de base lorsque l'on travaille de manière * récursive */ if(value == 0) { // ce qu'il faut faire } else { /* toute la logique ici aura pour but de tendre vers le cas de base */ // ce qu'il faut faire avant l'appel récursif foo(value/2); //par exemple (l'appel récursif) // ce qu'il faut faire après l'appel récursif } }
je vais mieux expliquer la situation :
je veux contruire une grille de Chambre (Chambre est une classe que j'ai deja definie ,le constructeur de chambre prend differents parametres pour chaque element de la grille le constructeur prend des parametres, donc j'ai collecter les elements qui vont prendre les meme parametres et les mettre dans une boucle particuliere)
quel conteneur dois je utiliser sachant que je n'ai jamais utilisé de conteneur?
Voici une liste exhaustive de conteneurs STL => http://cpp.developpez.com/faq/cpp/?page=STL
A celles-ci, tu peux ajouter les tableaux qui serait plutôt un conteneur de type C. Ainsi, tu peux stocker toutes les valeurs que tu souhaites dans une seule structure.
Pour ton problème, comme le propose koala01, le vector est le conteneur le plus adapté à ta situation...