bonsoir,
je veux utiliser un tableau à taille inconnue, a chaque fois que je calcule l'indice j'ajoute une valeur à cette indice. quelle structure il faut utiliser ?
bonsoir,
je veux utiliser un tableau à taille inconnue, a chaque fois que je calcule l'indice j'ajoute une valeur à cette indice. quelle structure il faut utiliser ?
La classe vector est une bonne alternative ^^ http://www.cplusplus.com/reference/stl/vector/
j'ai essayé avec vector comme suit:
mais ça bloque lors de l'execution
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 unsigned int x, y, channel; unsigned int dx, dy; unsigned int equalNeighbours; unsigned int idx=0 ; bool equal; std::vector<int> desc ; // the computation for(x = 2; x < lignes - 2; x++) { for(y = 2; y < colonnes - 2; y++) { equalNeighbours = 0; for (dx = x - 2; dx <= x + 2; dx++) { for(dy = y - 2; dy <= y + 2; dy++) { equal = true; for(channel = 0; channel < Dim; channel++) { if(pixelin[dy + colonnes * dx].d[channel] != pixelin[y + colonnes * x].d[channel]) { equal = false; break; } } if(equal) { equalNeighbours++; } } } idx = 0; for(channel = 0; channel < Dim; channel++) { idx = idx * 6 + pixelin[y + colonnes * x].d[channel]; printf("idx=%d",idx); } printf("idx=%d et x= %d et y=%d",idx,x,y); desc[idx]= 1.0/float(equalNeighbours); printf("desc = %f",desc[idx]);
Hum j'ai mal compris ce que tu voulais en faire peut être, je crois pas que tu puisses mettre une valeur à tel index, mais que tu es obligé de passé par un push_back... après je pense que tu peux utiliser resize pour être sûr d'avoir l'index de créé. genre par exemple tu as ton vector qui est de taille 1, mais tu veux ajouter quelque chose à 5, forcément, ça va pas marcher y a un dépassement, y a la méthode resize (http://www.cplusplus.com/reference/stl/vector/resize/) qui du coup tu fais resize(6) et là tu peux faire un vector[5] = ta valeur, maintenant que tu es sûre que la mémoire pour un 5eme emplacement est allouée !
Le problème est trop vague,
1) Quel type auront vos données dans ce tableau?
2) Pour déterminer l'indice, je vous conseille une fonction de recherche sur un vector.
3) Je ne comprend pas ce que vous voulez faire avec votre indice, le rechercher d'accord, mais l'ajout de valeur dessus servira à faire quoi? Ça permettra de cerner le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int rechercher(vector<type> vec);
4) Du coup vector (si autorisé) simplifie la vie, et donc la structure semble inutile, à moins que vous n'ayez pas tout dis.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Je crois que tu as oublié d’initialiser ton Vector.
Tu le déclares mais tu ne l'initialise pas une fois que tu connais la taille que tu souhaites.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager