Catalogo richiesta d'aiuto

ho scritto uno codice per il problema catalogo,

#include <vector>
using namespace std;
long long titles[200000];
int number[200000];
int T,N;

for(int i=0;i<200000;i++) {
	titles[i]=0;
	number[i]=0;
}

void aggiungi(long long int id) {
    bool exist;
    if(T==0) {
    	T+=1;
    	titles[0]=id;
    	number[0]=1;
	}
	else {
		exist=false;
		for(int i=0;i<T;i++) {
			if(id==titles[i]) {
				number[i]+=1;
				exist=true;
			}
		}
		if(!exist) {
			titles[T]=id;
			number[T]=1;
			T+=1;
		}
	}
}

void togli(long long int id) {
    for(int i=0;i<T;i++) {
    	if(id==titles[i]) {
    		number[i]-=1;
		}
	}
}

int conta(long long int id) {
    bool exist;
	exist=false;
	for(int i=0;i<T;i++) {
		if(titles[i]==id) {
			return number[i];
			exist=true;
		}
	}
	if(!exist) {
		return 0;
	}
}

capisco che questo sia un problema risolto con un grader ma non capisco come posso fare il problema in altri modi, eppure la piattaforma mi da continuamente errori di compilazione:

error: expected unqualified-id before ‘for’

perciò non capisco come posso risolvere questo problema.

Primo, questo for a cosa serve? Il programma non accede mai a delle posizioni del vettore se non sono state scritte, quindi non serve inizializzare ogni elemento a 0.

Secondo, T deve essere inizializzata = 0 altrimenti il codice non funziona.

Oltre a questi ci sono altre cose che potrebbero essere rimosse per aumentare la leggibilità, ma non dovrebbero causare problemi all’esecuzione.
Riprova risolvendo questi 2 problemi.

C++ non è Python, tutto il codice deve essere dentro una funzione, il punto di ingresso è la funzione main, che in questo caso ti è nascosta.

Colgo l’occasione per segnalare che questo è falso: tutte le variabili globali in C++ sono sempre inizializzate a 0.

1 Mi Piace

Ah, non lo sapevo. Cioè, non ci avevo mai provato, grazie per l’informazione.

Ma quindi alla fine è impossibile creare un array universale in esercizi fatti con un grader? Non capisco com’è possibile fare il codice in altri modi.
Ci sono altri esercizi che trovo e secondo me hanno bisogno di strutture dati globali; non sono bravo con c++ e non capisco come posso fare

Se è necessario avere strutture globali di solito viene fornita una funzione inizia per inizializzarle. Uno stratagemma alternativo consiste nel tenere in una variabile globale se è mai stata chiamata una funzione e fare l’inizializzazione alla prima chiamata.

In ogni caso qui non serve inizializzare le strutture globali, i valori di default sono già quelli che ti servirebbero.