begin process at 2012 05 30 11:44:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

std::sort


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

std::sort

vendredi 19 novembre 2004 à 22:45:39 | std::sort

ToToL

Membre Club
Bonjours

Voici une partit de mon programme :

std::vector <int> Index;
std::vector <int> Pos;

.
.
.

void OrgaIndex ( void )
{
std::vector <int> 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 :(

Ou ai-je fait une erreur ??

Merci

KiRu@
vendredi 19 novembre 2004 à 23:04:00 | Re : std::sort

djl

std::sort (tmpo.begin (), tmpo.begin () + 7);


vendredi 19 novembre 2004 à 23:11:54 | Re : std::sort

ToToL

Membre Club
oui en fait g modif vite fait car javai mis partial mais sa avait pas fat de changement mais meme en mettant

std::sort (tmpo.begin (), tmpo.begin () + 7);

sa plante tjr autant

KiRu@
vendredi 19 novembre 2004 à 23:26:05 | Re : std::sort

djl

il dit quoi le debugger ?

std::vector <int> tmpo;
tmpo.resize(Pos.size());

==> std::vector <int> tmpo(Pos.size());;
vendredi 19 novembre 2004 à 23:34:22 | Re : std::sort

ToToL

Membre Club
le débogguer me dir rien aucune prob

le prob c'est quand jexécute la fonction et qu'il y a au moin 1 valeur dans Pos

std::vector <int> tmpo;
tmpo.resize(Pos.size());

j'ai utiliser ce system car au début j'avai écrit

int tmpo[Pos.size()];
tmpo = Pos;

mais sa ne marchai pas car Pos au début ya rien dedans

Le prob vient d'autre part

KiRu@
vendredi 19 novembre 2004 à 23:44:16 | Re : std::sort

djl

c'est ce que tu ve faire ? (à verifier)

void OrgaIndex ( void )
{
std::vector <int> tmpo( Pos );

std::sort (tmpo.begin (), tmpo.end());

for( std::vector<int>::size_type i = 0; i < Pos.size(); ++i )
{
index[i] = std::find( tmpo.begin(), tmpo.end(), Pos[i] ) - tmpo.begin();
}

}
vendredi 19 novembre 2004 à 23:53:58 | Re : std::sort

ToToL

Membre Club
je ne conné pas std::vector<int>::size_type peut tu me l'expliquer ?

et au fait tmpo.begin() renvoi quoi ?? un pointeur ?? si c'est un pointeur ce n'est pas bon

KiRu@
samedi 20 novembre 2004 à 00:00:08 | Re : std::sort

djl

ca renvoi un iterateur mais la difference sera converti en size_type

size_type est un type membre de vector, il sert de type exprimant une taille (size(), operator[],...)

vector<int> parce qu'il faut un type de vector instancié
samedi 20 novembre 2004 à 00:07:39 | Re : std::sort

ToToL

Membre Club
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 :

void OrgaIndex ( void )
{
std::vector <int> tmpo( Pos );

std::sort (tmpo.begin (), tmpo.end());

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

KiRu@
samedi 20 novembre 2004 à 00:12:41 | Re : std::sort

djl

c'est quel ligne qui plante ?

1 2

Cette discussion est classée dans : index, begin, std, pos, tmpo


Répondre à ce message

Sujets en rapport avec ce message

tableau [ par ToToL ] Bonjour,j'ai un tableau créé de cette maniere :std::vector Pos;et a un moment j'ai besion d'en créé un autre qui doit etre une copie de Pos , quel es Problème Template [ par lglandeur ] Bonjour, pour la réalisation d'un programme j'ai besoin d'accéder à un fichier ini, et comme je ne veux pas être limité à Windows, j'ai eu l'idée de m Récupérer le pid lors d'un double fork() [ par tinram ] Bonjour,    J'écris une interface graphique pour controler jack, un serveur de son sous nux, et j'ai un ptit problème. Pour lancer jack, je passe par Spécialisation des template [ par lglandeur ] Bonjour,J'ai une fonction template qui appartiens a une class (qui n'est pas template), et je souhaite spécialiser cette fonction pour le type std ::s c++ [ par zizota ] bonsoir,je suis débutante en c++ et j'ai trouvé  un code sur netmais j'ai rien compriunsigned int index;      unsigned long int count[2];   index = (u Problème avec exercice sur un programme [ par Pilotwings ] Bonjour à toutes et à tous, je suis en train de m'entrainer à faire des exercices sur les constantes énumérées. Je dois exécuter le programme suivant Probleme d'heritage [ par bakibak ] Bonjour a tous, je suis en train de coder un projet pour la gestion d'un zoo a la fac.Sans tout vous décrire j'ai une classe personne et deux classe h C++ [ par zizota ] bonsoir,j'aime bien ke kelkun m'explique ça:int padLen, index; padLen = (index < 56) ? (56 - index) : (120 - inde Position Trackbar wave c++ [ par csauvane ] Bonjour,Je suis en train de coder une application qui traite les son .wav.J'ai un petit probleme avec la representation de la barre de progression du récupérer les index d'une listbox a selection multiple [ par LaTatadu91 ] Bonjour,je pense que tout est dans le titre: je sais le faire pour un seul item selectionné( int nIndex = m_ctlListGroup.GetCurSel();) mais pas pour m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,011 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales