J'apprends à programmer, et C++ est ma première langue. Ne vous embêtez pas à utiliser des pointeurs pour me montrer - je ne les comprends pas encore, et ne me dérangerai pas avant d'avoir plus de temps libre à consacrer à cela.Pouvez-vous redimensionner un tableau C++ après l'initialisation?
int mergeSort()
{
const int n = 9;
int originalarray[n] = {1, 3, 5, 7, 9, 2, 4, 6, 8};
const int halfelements = (sizeof(originalarray)/sizeof(int))/2;
int farray[halfelements];
int sarray[halfelements];
for (int i = 0; i < halfelements; i++) {
farray[i] = originalarray[i];
}
for (int i = halfelements, x = 0; i < (halfelements * 2); i++, x++) {
sarray[x] = originalarray[i];
}
J'ai été affecté (je ne suis pas à prendre des cours - en train d'apprendre avec quelques amis me aider) un algorithme de tri de fusion, avec l'algorithme expliqué, mais pas la mise en œuvre. Je veux réécrire cela afin qu'il fonctionne à la fois pour les entiers pairs et impairs. J'ai essayé d'ajouter ce code:
if ((n % 2) != 0) int farray[halfelements + 1];
Afin que je puisse utiliser le même nombre entier pour itérer sur les deux tableaux suivants. Un sizeof (farray) montre être 16 octets, ou 4 entiers. Donc, ce n'est pas le redimensionnement. Ce que je veux savoir - est-il possible de redimensionner les tableaux après leur initialisation?
Éditer: Comment implémenter un vecteur? Je ne comprends pas comment utiliser les itérateurs dans une boucle pour parcourir et copier les valeurs.
OK, merci. J'ai compris comment implémenter std :: vector dans cet algorithme.Bien que j'aurais aimé ne pas avoir passé deux heures à déboguer mon code, juste pour comprendre l'en-tête de ma fonction "int mergeSort (std :: vector, int)" il manquait un "" =/ –
jkeys
par des tableaux dynamiques de toute façon? La redimensionnement dynamique d'un tableau ou d'un vecteur doit entraîner les mêmes pénalités de performance.> – Jason