cs_ToToL
Messages postés170Date d'inscriptionvendredi 25 avril 2003StatutMembreDernière intervention 9 juillet 2008
-
19 nov. 2004 à 22:45
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 2010
-
21 nov. 2004 à 20:35
Bonjours
Voici une partit de mon programme :
std::vector Index;
std::vector Pos;
.
.
.
void OrgaIndex ( void )
{
std::vector tmpo;
tmpo.resize(Pos.size());
std::copy(Pos.begin(),Pos.end(),tmpo.begin());
std::sort (tmpo.begin (), tmpo.begin () + 7, tmpo.end ());
for ( int i = 0; i < Pos.size(); i++ )
{
for ( int t = 0; t < Pos.size() ; t++ )
{
if ( tmpo[i] == Pos[t] ) Index[i] = t;
}
}
}
Au cour de mon programme la taille de Pos change mais la taille de Pos est toujours la meme que celle de Index.
en fait j'ai un ntableau Pos rempli de différentes valeur et je charge a rentrer dans Index l'ordre croissant de Pos.
je m'explique :
si Pos est constitué comme cela :
Pos[0] = 300
Pos[1] = 100
Pos[2] = 400
alors je veut que Index soit comme cela :
Index[0] = 1
Index[1] = 0
Index[2] = 2
voila sauf que ma fonction quand je l'appelle et si Pos comporte au moin une valeur , la fonction plante et fin du programme :(
cs_ToToL
Messages postés170Date d'inscriptionvendredi 25 avril 2003StatutMembreDernière intervention 9 juillet 2008 20 nov. 2004 à 00:07
en fait ton code ne me vas pas.
en fouillant mon code c'était une erreur mais il y en a une autre et je suis sur quel est dans la focntion et plus particulierement dans la double boucle for :
for ( int i = 0; i < Index.size(); i++ )
{
for ( int t = 0; t < Pos.size() ; t++ )
{
if ( tmpo[i] == Pos[t] ) Index[i] = t;
}
}
}
Ou est le probleme ? la seul erreur a laquel je pense c'est une erreur d'écriture dans une variable inéxistante mais je n'est pas de message d'eeruer : le mémoire ne peut etre written
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 21 nov. 2004 à 17:09
j'ai une question a propos de cette fonction.
je veux classer un tableau en fonction d'un autre tableau.on peut le faire avec ca?
exemple, j'ai
a[]={0,1,2,3,4,5};
b[]={9,8,7,5,6,4};
et je veux que a[5] se retrouve en premiere position, puisque b[5] est le plus petit. ensuite viendraient a[3],a[4],a[2],a[1],a[0]
c'est possible?
merci
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 21 nov. 2004 à 17:56
bona vrai dire c'est pas tout a fait ca que j'ai.
struct _particule{
float distance;
....
};
_particule Particule[1000];
la je créé 1000 particules; le but est de créer un tableau
int ordre[1000];
ordre[0] contient l'index de la particule la plus lointaine, par exemple la
100eme, soit ordre[0]==100, et ainsi de suite.
apres pour afficher les particules, je fais
for (int a=0;a!=1000;a++){
drawparticule[Particule[ordre[a]];
}
vi je sais c'est compliqué, t'as peut-etre une autre méthode, le pb c'est que la transparence c'est chiant, il faut dessiner en premier les plus lointains...