Bonjour
Je voudrait creer un tableau de float et sorti les 5plus grand élément du tableau. Existe-il en QT (ou a defaut en c++) une fonction qui fasse cela
Merci d'avance
Jeane
Bonjour
Je voudrait creer un tableau de float et sorti les 5plus grand élément du tableau. Existe-il en QT (ou a defaut en c++) une fonction qui fasse cela
Merci d'avance
Jeane
STL fournit une fonction sort... Et il y a aussi la fonction qsort en C.
Je confirme, la fonction std::sort() est ton ami, surtout sur des float tu n'as rien à faire ou presque :
std::sort( Tableau, Tableau+TAILLE_DU_TABLEAU);
et hop, ton tableau est trié !
ce bout de code:
ne marche pas !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 float *tab=new float[5]; for (int i=0;i<5;i++) { tab[i]=10-i; } std::sort(tab,5);
PS: il n'existe pas de fonction QT qui fasse celà?
encore merci
je crois qu'il y a incompréhension entre tut et touco : STL et SDL sont deux choses différentes...
la STL est la librairie standard C++
tandis que la SDL est une librairie C tierce...
pour ton problème, essaie de voir avec les vector de la STL, et les fonctions de tri associées (FAQ C++ et tutos C++ du site)
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
qsort est à proscrire, il faut utiliser std::sort en C++ - plus rapide -. En même temps, on peut aussi utiliser QVector pour stocker des flottants.
Merci le type QVector est celui que je cherchait.
Cependant je ne trouve pas de fonction de QVector qui tri le vecteur ou eventuellement qui donne les n plus petit élément du tableau.
Cette fonction existe-elle?
Tu peux utiliser std::partial_sort si tu ne veux pas tout trier. Tu peux même l'utiliser sur ton QVector s'il exporte une paire d'itérateurs.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
euh c'est à dire??
je suis désolé mais je débute en QT alors je suis pas très à l'aise!!
encore merci
C'est-à-dire que :
Devrait te mettre dans les 5 premiers éléments de Tab les 5 plus grands flottants de ton tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 QVector<float> Tab; ... std::partial_sort(Tab.begin(), Tab.begin() + 5, Tab.end(), std::greater<float>());
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Fait un petit test avant quand même. Personnellement, pour mon utilisation (petits tableaux), partial_sort était plus lent que sort (??).
Alors déjà j'ai un probleme avec la classe qvector
j'ecris:
QVector<float> v;
v.append(5.2);
v.append(1.9);
pour remplir mon vecteur
(j'ai fait un #include<qvector.h> )
voilà ce que le compilo me dit:
main.cpp:36: erreur: ‘class QPtrVector<float>’ has no member named ‘append’
idem il ne reconnait pas de v.begin()...
Remarque:
même si j'essaie d'utiliser la stl avec
: stl::vector<int< v;
le compilo dit que vector n'est pas une classe de la stl ....
le namespace de la stl n'est pas stl mais std...
et pour les vector de la STL, c'est pas append, mais push_back![]()
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
C'est std::vector, pas stl::vector !!
QVector a un membre append : http://qt.developpez.com/doc/4.1/qvector/
Pour trier, l'appel à sort est aussi préconisé.
Au fait, c'est quelle version de Qt ?
Désolé j'avais bien ecrir std::vector mais la réponse est :
main.cpp:35: erreur: ‘vector’ is not a member of ‘std’
Qand à la classe QVector c'est justement à l'adresse indiqué que j'ai trouver que la fonction append me permettait d'ajouter des élément mais apparemment mon compilo n'est pas d'accord...voici ces idre:
main.cpp:37: erreur: ‘class QPtrVector<float>’ has no member named ‘append’
d'ailleurs je ne comprend pas pourquoi il dit que c'est un QPtrVector alors que je le déclare en QVector
Bizzar non?
pour std::vector, il faut que tu penses à mettre un
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <vector>
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
A mon avis, tu n'as pas inclus les headers...Envoyé par Jeane
Partager