C++ et mémoire
Fermé
Moidibe
-
4 mars 2010 à 07:23
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 11 mars 2010 à 09:27
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 11 mars 2010 à 09:27
A voir également:
- C++ et mémoire
- Mémoire vive - Guide
- Test memoire pc - Guide
- Nettoyer memoire iphone - Guide
- Mémoire virtuelle - Guide
- Mémoire stockage smartphone - Accueil - Guide Android
11 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
4 mars 2010 à 08:32
4 mars 2010 à 08:32
Salut.
Je ne connaissais pas ce type de problème. J'ai trouvé ça qui explique le problème : https://forums.codeguru.com/showthread.php?252410-Page-Faults
D'après ce que je lis c'est que tu dois utilisé beaucoup de mémoire.
Ppourquoi ne pas utilisé les conteneurs de la STL, ils sont normalement fait pour gérer la mémoire au mieux selon ce que tu veux faire.
Désolé de ne pas pouvoir t'aider plus que ça.
Je ne connaissais pas ce type de problème. J'ai trouvé ça qui explique le problème : https://forums.codeguru.com/showthread.php?252410-Page-Faults
D'après ce que je lis c'est que tu dois utilisé beaucoup de mémoire.
Ppourquoi ne pas utilisé les conteneurs de la STL, ils sont normalement fait pour gérer la mémoire au mieux selon ce que tu veux faire.
Désolé de ne pas pouvoir t'aider plus que ça.
Je suis en train de regardé ce tutorial :
http://artis.imag.fr/~Xavier.Decoret/resources/stl_tutorial/sommaire.html
Je trouve ca un peu compliqué à utiliser. Je voudrais juste un moyen pour mieux gérer l'écriture et la suppression en mémoire mais là ca me semble être une véritable machine à gaz...
Ensuite comment choisir le type de conteneur ? J'ai déjà une liste chainé dans mon programme. Mes éléments de ma liste sont petits. Un conseil ?
http://artis.imag.fr/~Xavier.Decoret/resources/stl_tutorial/sommaire.html
Je trouve ca un peu compliqué à utiliser. Je voudrais juste un moyen pour mieux gérer l'écriture et la suppression en mémoire mais là ca me semble être une véritable machine à gaz...
Ensuite comment choisir le type de conteneur ? J'ai déjà une liste chainé dans mon programme. Mes éléments de ma liste sont petits. Un conseil ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
8 mars 2010 à 08:06
8 mars 2010 à 08:06
Les conteneurs de la STL, sont très simple à utiliser. Ils ont été créer et optimiser (en mémoire et temps de calcul) pour gérer ce que tu veux faire. Donc pas une machine à gaz.
Pour le choix, je ne suis pas le mieux placer pour t'aider.
Pour le choix, je ne suis pas le mieux placer pour t'aider.
Je vous remercie pour vos réponse.
Quand j'essaie d'utiliser le conteneur vector dans une fonction ca ne marche pas tandis que dans le main je n'ai aucun problème. J'ai bien sur fait un #include<vector> au début du programme donc je ne comprends pas...
Je précise que j'ai Microsoft Visual C++ 2005.
Merci encore.
Quand j'essaie d'utiliser le conteneur vector dans une fonction ca ne marche pas tandis que dans le main je n'ai aucun problème. J'ai bien sur fait un #include<vector> au début du programme donc je ne comprends pas...
Je précise que j'ai Microsoft Visual C++ 2005.
Merci encore.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ajoute le code et les erreurs.
Code :
vector<int> datas;
Erreurs:
error C2065: 'vector' : identificateur non déclaré
error C2062: type 'int' inattendu
Bon d'après les erreurs, il ne reconnait pas la librairie vector ou il ignore mon #include <vector> mais je ne comprend pas pourquoi.
Avez-vous des conseils dans l'utilisation du STL ? Je découvre ça et c'est vraiment nouveau, je suis un peu perdu...
Merci.
Code :
vector<int> datas;
Erreurs:
error C2065: 'vector' : identificateur non déclaré
error C2062: type 'int' inattendu
Bon d'après les erreurs, il ne reconnait pas la librairie vector ou il ignore mon #include <vector> mais je ne comprend pas pourquoi.
Avez-vous des conseils dans l'utilisation du STL ? Je découvre ça et c'est vraiment nouveau, je suis un peu perdu...
Merci.
Bon j'ai finalement trouvé l'erreur en cherchant sur internet. Je me réponds mais je ne suis pas (encore) devenu fou c'est juste pour que ca soit éventuellement utile à quelqu'un d'autre.
Il fallait mettre "using namespace std;" avant le fichier contenant ma fonction qui contenant "vector <int> datas".
Simple et bête comme d'habitude... :-D
Bon à part ça, je suis toujours partant pour quelques conseils, infos ou ruses de sioux pour la STL. Si vous avez également quelques liens avec une bonne explication sur la STL qui me permettrait de bien comprendre, je suis preneur aussi.
Merci pour tout.
Il fallait mettre "using namespace std;" avant le fichier contenant ma fonction qui contenant "vector <int> datas".
Simple et bête comme d'habitude... :-D
Bon à part ça, je suis toujours partant pour quelques conseils, infos ou ruses de sioux pour la STL. Si vous avez également quelques liens avec une bonne explication sur la STL qui me permettrait de bien comprendre, je suis preneur aussi.
Merci pour tout.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
8 mars 2010 à 10:04
8 mars 2010 à 10:04
Salut.
J'ai retrouvé ça dans mes documents : http://brunogarcia.chez.com/pdf/stl.pdf
Le chapitre 3 t'intéressera, il présente les différents conteneurs et leurs "performances".
Il y a ça aussi pour l'utilisation de la STL : https://en.cppreference.com/w/Main_Page
J'ai retrouvé ça dans mes documents : http://brunogarcia.chez.com/pdf/stl.pdf
Le chapitre 3 t'intéressera, il présente les différents conteneurs et leurs "performances".
Il y a ça aussi pour l'utilisation de la STL : https://en.cppreference.com/w/Main_Page
Je te remercie pour tes infos.
J'ai commencé à bien tout lire et j'ai changé d'avis. Je pense que je vais choisir le conteneur "list" plutot que "vector". En fait, je pense effectuer seulement des ajouts au tableau seulement à la fin mais les suppression aussi bien qu'à la fin qu'au mileu. "list" me semble donc mieux adapté.
Vector en cas de suppression d'un élément au milieu de la liste va-t-il déplacer tous les élément suivant ?
J'ai commencé à bien tout lire et j'ai changé d'avis. Je pense que je vais choisir le conteneur "list" plutot que "vector". En fait, je pense effectuer seulement des ajouts au tableau seulement à la fin mais les suppression aussi bien qu'à la fin qu'au mileu. "list" me semble donc mieux adapté.
Vector en cas de suppression d'un élément au milieu de la liste va-t-il déplacer tous les élément suivant ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
9 mars 2010 à 08:07
9 mars 2010 à 08:07
Si j'ai bien compris oui car l'intéret de vector est d'acceder rapidement aux éléments, ils doivent donc être continues en mémoire, ce qui implique un déplacement des données en cas de suppression ou insertion au milieu du vector.
Je n'en connais pas plus que les documents que je t'ai fourni, c'est pour ça que je t'ai laissé faire ton choix sans rien te conseillé.
Je n'en connais pas plus que les documents que je t'ai fourni, c'est pour ça que je t'ai laissé faire ton choix sans rien te conseillé.
Je suis en train de modifier mon programme mais j'essaie de limiter les modifications sinon ca va etre ingérable.
On verra si avec seulement le conteneur list ca limitera mon problème. Si ca ne marche pas je vais devoir faire une refonte totale du programme et ca risque de prendre beaucoup de temps donc je préfère l'éviter...
Voila je te remercie pour ton aide. Je repasserai pour te dire si mes problème sont terminés.
On verra si avec seulement le conteneur list ca limitera mon problème. Si ca ne marche pas je vais devoir faire une refonte totale du programme et ca risque de prendre beaucoup de temps donc je préfère l'éviter...
Voila je te remercie pour ton aide. Je repasserai pour te dire si mes problème sont terminés.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
11 mars 2010 à 09:27
11 mars 2010 à 09:27
Une solution pourrai être de modifier ton algorithme. Au lieu de supprimer la mémoire contenant des informations qui ne t'intéressent pas, tu la marque comme inutile et tu l'écrase au prochain besoin. (Je pense que la STL agit ainsi dans une certaine gamme remarque)