Bonjour,
Je fais du traitement d'image 3d donc des grosses données avec une gestion par file d'attente.
Je suis tombé sur ce probleme que je résume avec ce code
Le probleme est qu'avec push_front. Tout marche sur des roulettes. Je vois que mon processus utilise 0% mémoire dans la boucle infini en revanche si il y a
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 int main() { deque< int > d; int max = 100000; for(int i=0;i<1200;i++) { for(int j=0;j<max;j++) //SOIT PUSH_BACK, SOIT PUSH_FRONT d.push_back(i); //d.push_front(i); } while(d.empty()!=true) { d.pop_front(); } d.resize(d.size()); cout<<"taille "<<d.size()<<endl; while(1!=0) { } }
push_back à la place du push_front, mon processeur utilise 50% de mémoire dans la boucle infini et pourtant la taille du conteneur est de 0.
Mes questions sont:
Comment demander au conteneur de reserver uniquement la place mémoire équivalent à sa taille?
Existe-il un conteneur qui automatiquement va retailler la place mémoire utilisée?
PS: J'ai essayé d.resize(d.size()) mais cela ne marche pas.
PPS le probleme est similaire avec le conteneur queue.
Merci de votre aide
Partager