Sto imparando a programmare e il C++ è la mia prima lingua. Non preoccuparti di usare i puntatori per mostrarmi - non li capisco ancora, e non mi preoccuperò finché non avrò più tempo libero da dedicare a questo.È possibile ridimensionare un array C++ dopo l'inizializzazione?
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];
}
mi è stato assegnato (non sto prendendo lezioni - solo l'apprendimento con alcuni amici mi hanno aiutato) un algoritmo di ordinamento merge, con l'algoritmo ha spiegato, ma non l'implementazione. Voglio riscrivere questo in modo che funzioni sia per numeri dispari che per interi. Ho provato aggiungendo questo codice:
if ((n % 2) != 0) int farray[halfelements + 1];
modo da poter utilizzare lo stesso numero intero per scorrere entrambi gli array successive. Una sizeof (farray) mostra di essere 16 byte o 4 numeri interi. Quindi non sta ridimensionando. Quello che voglio sapere - è possibile ridimensionare gli array dopo l'inizializzazione?
Modifica: come implementare un vettore? Non capisco come usare gli iteratori in un ciclo per scorrere e copiare i valori.
OK, grazie. Ho capito come implementare std :: vector in questo algoritmo.Anche se mi piacerebbe non aver passato due ore a eseguire il debug del mio codice, solo per capire l'intestazione della funzione "int mergeSort (std :: vector, int)" mancava un "" =/ –
jkeys
Non sono supportati da 'vector' dagli array dinamici comunque? Il ridimensionamento dinamico di un array o di un vettore dovrebbe comportare le stesse penalizzazioni prestazionali a destra> – Jason