Accueil > > > ORDONNER UN TABLEAU DE CHAR*, INT, DOUBLE, LONG, ETC ...
ORDONNER UN TABLEAU DE CHAR*, INT, DOUBLE, LONG, ETC ...
Information sur la source
Description
Ce petit bout de code permet de mettre en ordre croissant ou décroissant des tableaux de signed/unsigned char* signed/unsigned char signed/unsigned int signed/unsigned long double float long double signed/unsigned short long signed/unsigned int etc ... etc ... etc ...
Source
- /*
- **** Fichier main.cpp, exemple avec un tableau de char*
- */
- #include <iostream> // cout/endl
- using namespace std;
- #include <memory.h> // memset()/memcpy()
- #include <stdlib.h> // system()
- #include "vsort.h" // order()/disorder()
- #include <windows.h> // GetTickCount()
-
- int main() {
-
- int i=0;
- char** listOfItem=0;
- DWORD dwStart=0;
- DWORD dwEnd=0;
-
- // allocations de mémoire
- listOfItem = new char*[15]; // max de 15 éléments
- for (i=0; i<15; i++) {
- listOfItem[i] = new char[255]; // max de 255 caractères par élément
- memset(listOfItem[i], 0, 255); // init à 0
- }
-
- // assignation des items
- memcpy(listOfItem[0], "listOfItem", 10);
- memcpy(listOfItem[1], "memset", 6);
- memcpy(listOfItem[2], "new", 3);
- memcpy(listOfItem[3], "char", 4);
- memcpy(listOfItem[4], "for", 3);
- memcpy(listOfItem[5], "listOfItem = new char*[15];", 27);
- memcpy(listOfItem[6], "for (i=0; i<15; i++) {", 22);
- memcpy(listOfItem[7], "listOfItem[i] = new char[255];", 30);
- memcpy(listOfItem[8], "int i=0;", 8);
- memcpy(listOfItem[9], "return 0;", 9);
- memcpy(listOfItem[10], "using namespace std;", 20);
- memcpy(listOfItem[11], "#include <memory.h>", 19);
- memcpy(listOfItem[12], "int main() {", 12);
- memcpy(listOfItem[13], "#include 'vstrlwrupr.h'", 23);
- memcpy(listOfItem[14], "#include 'vsort.h'", 18);
-
- // affichage d'information
- cout << "Liste des items avant classement" << endl << endl;
-
- // listing des items
- for (i=0; i<15; i++){
- cout << i << ") " << listOfItem[i] << endl;
- }
-
- // Fin du listing
- cout << endl << "Fin de la liste" << endl << endl;
-
- // Fait une pause
- system("pause");
- // Affichage d'information
- cout << endl << "Liste des items apres classement en ordre alpha" << endl << endl;
-
- dwStart = GetTickCount();
- // Classe en ordre alpha
- if ( order(listOfItem, 14) > 0 ) { // Si plus grand que zéro, aucune erreur
- dwEnd = GetTickCount();
- // Listing des items après classement
- for (i=0; i<15; i++) {
- cout << i << ") " << listOfItem[i] << endl;
- }
- // Fin du listing
- cout << endl << "Fin de la liste" << endl << endl;
- // Affichage du temp d'execution
- cout << "Temp d'execution du classement: " << (long)(dwEnd-dwStart) << endl << endl;
- }
- else { // Plus petit que zéro, erreur
- cout << "Erreur lors du classement" << endl << endl;
- }
-
- // Fait une pause
- system("pause");
- // Affichage d'information
- cout << endl << "Liste des items apres classement en deordre alpha" << endl << endl;
-
- dwStart = GetTickCount();
- // Classe en ordre alpha
- if ( disorder(listOfItem, 14) > 0 ) { // Si plus grand que zéro, aucune erreur
- dwEnd = GetTickCount();
- // Listing des items après classement
- for (i=0; i<15; i++) {
- cout << i << ") " << listOfItem[i] << endl;
- }
- // Fin du listing
- cout << endl << "Fin de la liste" << endl << endl;
- // Affichage du temp d'execution
- cout << "Temp d'execution du classement: " << (long)(dwEnd-dwStart) << endl << endl;
- }
- else { // Plus petit que zéro, erreur
- cout << "Erreur lors du classement" << endl << endl;
- }
-
- // Libère la mémoire
- for (i=0; i<15; i++ ) {
- delete [] listOfItem[i];
- }
- delete [] listOfItem;
-
- // Fait une pause
- //system("pause");
- // Fin du programme
- return 0;
-
- }
-
/*
**** Fichier main.cpp, exemple avec un tableau de char*
*/
#include <iostream> // cout/endl
using namespace std;
#include <memory.h> // memset()/memcpy()
#include <stdlib.h> // system()
#include "vsort.h" // order()/disorder()
#include <windows.h> // GetTickCount()
int main() {
int i=0;
char** listOfItem=0;
DWORD dwStart=0;
DWORD dwEnd=0;
// allocations de mémoire
listOfItem = new char*[15]; // max de 15 éléments
for (i=0; i<15; i++) {
listOfItem[i] = new char[255]; // max de 255 caractères par élément
memset(listOfItem[i], 0, 255); // init à 0
}
// assignation des items
memcpy(listOfItem[0], "listOfItem", 10);
memcpy(listOfItem[1], "memset", 6);
memcpy(listOfItem[2], "new", 3);
memcpy(listOfItem[3], "char", 4);
memcpy(listOfItem[4], "for", 3);
memcpy(listOfItem[5], "listOfItem = new char*[15];", 27);
memcpy(listOfItem[6], "for (i=0; i<15; i++) {", 22);
memcpy(listOfItem[7], "listOfItem[i] = new char[255];", 30);
memcpy(listOfItem[8], "int i=0;", 8);
memcpy(listOfItem[9], "return 0;", 9);
memcpy(listOfItem[10], "using namespace std;", 20);
memcpy(listOfItem[11], "#include <memory.h>", 19);
memcpy(listOfItem[12], "int main() {", 12);
memcpy(listOfItem[13], "#include 'vstrlwrupr.h'", 23);
memcpy(listOfItem[14], "#include 'vsort.h'", 18);
// affichage d'information
cout << "Liste des items avant classement" << endl << endl;
// listing des items
for (i=0; i<15; i++){
cout << i << ") " << listOfItem[i] << endl;
}
// Fin du listing
cout << endl << "Fin de la liste" << endl << endl;
// Fait une pause
system("pause");
// Affichage d'information
cout << endl << "Liste des items apres classement en ordre alpha" << endl << endl;
dwStart = GetTickCount();
// Classe en ordre alpha
if ( order(listOfItem, 14) > 0 ) { // Si plus grand que zéro, aucune erreur
dwEnd = GetTickCount();
// Listing des items après classement
for (i=0; i<15; i++) {
cout << i << ") " << listOfItem[i] << endl;
}
// Fin du listing
cout << endl << "Fin de la liste" << endl << endl;
// Affichage du temp d'execution
cout << "Temp d'execution du classement: " << (long)(dwEnd-dwStart) << endl << endl;
}
else { // Plus petit que zéro, erreur
cout << "Erreur lors du classement" << endl << endl;
}
// Fait une pause
system("pause");
// Affichage d'information
cout << endl << "Liste des items apres classement en deordre alpha" << endl << endl;
dwStart = GetTickCount();
// Classe en ordre alpha
if ( disorder(listOfItem, 14) > 0 ) { // Si plus grand que zéro, aucune erreur
dwEnd = GetTickCount();
// Listing des items après classement
for (i=0; i<15; i++) {
cout << i << ") " << listOfItem[i] << endl;
}
// Fin du listing
cout << endl << "Fin de la liste" << endl << endl;
// Affichage du temp d'execution
cout << "Temp d'execution du classement: " << (long)(dwEnd-dwStart) << endl << endl;
}
else { // Plus petit que zéro, erreur
cout << "Erreur lors du classement" << endl << endl;
}
// Libère la mémoire
for (i=0; i<15; i++ ) {
delete [] listOfItem[i];
}
delete [] listOfItem;
// Fait une pause
//system("pause");
// Fin du programme
return 0;
}
Conclusion
Créé et testé avec VC++ 6 sous Windows 2000 Pro seulement.
*%*%*%*%*%*%*% % * vObjects % *%*%*%*%*%*%*%
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[TOOLS] NDEPEND 3 DANS VISUAL STUDIO, WAAAAAAAOU!!![TOOLS] NDEPEND 3 DANS VISUAL STUDIO, WAAAAAAAOU!!! par JeremyJeanson
NDepend passé en version 3. Comme pour toute version majeur, la version 3 a son lots de nouveautés : performances, fonctionnalités accrues . etc . Mais dans tout cela il y a la fonctionnalité qui dénote. Le petit truc qui fait que NDepend me fait dire Waa...
Cliquez pour lire la suite de l'article par JeremyJeanson [WF4] GROSSES MéPRISES EN PERSPECTIVE SUR LE KIT DE MIGRATION WF3->WF4[WF4] GROSSES MéPRISES EN PERSPECTIVE SUR LE KIT DE MIGRATION WF3->WF4 par JeremyJeanson
Comme un certain nombre de fanatiques des flux RSS, je suis avec grand intérêt les articles de la team WCF/WF et forcément l'annonce d'hier concernant un kit de migration WF3->WF4 m'a fait chaud au c½ur ;) (pour rappel, mon post au sujet de la migratio...
Cliquez pour lire la suite de l'article par JeremyJeanson RéUNION DU CLUB MOSS PARISRéUNION DU CLUB MOSS PARIS par VANNESTE Xavier
Bonjour à tous la réunion du club moss aura lieu le 15 mars 2010 à 14 heures:
14:00 - 14:05 Paris, EROL GIRAUDY + Gaetan BOUVERET + Nicolas Georgeault intro Présentateur : Pierre Erol GIRAUDY14:05 - 14:30 Paris, Worflow - visio Services - We...
Cliquez pour lire la suite de l'article par VANNESTE Xavier [WF4] ARGUMENT, QUI ES TU?[WF4] ARGUMENT, QUI ES TU? par JeremyJeanson
Quand je parle de Workflows ou d'activités (au passage, il s'agit de la même chose dans WF4 ;) ), je fais souvent la comparaison avec une méthode classique : Une activité peut avoir un retour, comme une méthode. Une activité peut avoir des arguments d'ent...
Cliquez pour lire la suite de l'article par JeremyJeanson [FAST] FORMATIONS GRATUITES EN E-LEARNING[FAST] FORMATIONS GRATUITES EN E-LEARNING par pierre
Bonjour, Quelques formations gratuites sur FAST: Developer Configuring Search UIs Presentation 37 minutes La...
Cliquez pour lire la suite de l'article par pierre
Logiciels
Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor Xlite (v 3.0 build 41150)XLITE (V 3.0 BUILD 41150)c'est un logiciel qui permet de téléphoner par Internet à l'aide d'un compte SIP pratique pour le... Cliquez pour télécharger Xlite Academy System (10.9.3.0)ACADEMY SYSTEM (10.9.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Pacmin (1.1.0)PACMIN (1.1.0)Adaptation du célèbre jeu d'arcade. Incarnez une équipe de fantômes ou de pacmans et détruisez vo... Cliquez pour télécharger Pacmin italc (1.0.9)ITALC (1.0.9)italc permet de voir ce que font les ordinateurs de votre réseau (attention : juste pour petit ré... Cliquez pour télécharger italc
|