2010-09-12 10 views
1
int* HT; 
int HTc = 500; 
HT = new int[HTc] = {-1}; //Fill array with -1 

Je reçois le avertissement:Remplir une taille variable Tableau

listes de initialiseur étendues uniquement disponible avec std = C++ 0x ou = std = gnu ++ 0x

Je suppose que cela signifie qu'il n'est pas compatible avec la norme ANSI, que mon prof. est fou pour. Sinon, comment pourrais-je faire cela?

+1

Sérieusement, arrêtez ce que vous faites et créez votre propre classe de vecteur et de chaîne. Ensuite, utilisez simplement 'std :: fill'. (Ou si votre professeur est stupide à cet égard, faites votre propre remplissage.) – GManNickG

+0

Je ne recommanderais pas que vous utilisiez des tableaux de longueur variable. EDIT: Oh, vous utilisez la mémoire dynamique. –

Répondre

6

Utilisez std :: fill. Il serait préférable d'utiliser un std :: vecteur de tableau de style ac, mais juste pour la démonstration:

#include <algorithm> 

int HTc = 500; 
int HT[] = new int[HTc]; 
std::fill(HT, HT+HTc, -1); 
// ... 
delete[] HT; 
2

Je ne suis pas sûr que cela fonctionnerait comme vous le souhaitez, même si vous utilisiez les options recommandées - n'initialiserait-il pas le premier élément de tableau à -1 et le reste à 0?

Parcourez simplement tous les éléments et réglez-les individuellement.

2

Sauf si vous avez une raison vraiment exceptionnelle de faire autrement, la méthode préférée serait d'utiliser non seulement un vecteur , mais spécifiez également la valeur initiale lorsque vous appelez le ctor: std::vector<int> HT(500, -1);

+0

Son professeur ne le permet pas, apparemment. Comment les programmeurs terribles finissent-ils par enseigner? – GManNickG

+2

Je suppose que cela correspond à la vieille ligne sur "ceux qui peuvent, faire, ceux qui ne peuvent pas, enseigner, ceux qui ne peuvent pas enseigner, enseigner PE" - seulement dans ce cas, ils enseignent apparemment la programmation. Ce qui, à son tour, fait penser à une autre vieille ligne, à l'effet que: "Le vers libre est la poésie la plus difficile à écrire de façon acceptable - et donc le plus souvent tenté par ceux qui ne peuvent écrire de poésie acceptable." –

Questions connexes