Compilatore e debugger C++ online

Compila e fai il debug di C++ con breakpoint, variabili e controlli GDB passo passo in modalità Server.

Librerie preinstallate
🚀 2,392,381 esecuzioni totali (7 questo mese)
Output

Esercitati in C++ con le sfide di codice

Risolvi problemi pratici direttamente in questo editor: esegui i test di esempio, invia la soluzione e ricevi una revisione AI del codice.

Tutte le sfide C++
Facile

Average of Three

Average three whole numbers.

Imparerai AritmeticaDivisione
BeginnerLearning-pathVariables
Facile

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Imparerai AritmeticaValori di ritorno
BeginnerLearning-pathVariables
Media

Una generazione di un algoritmo genetico

Genera la prossima generazione di stringhe di bit con selezione a torneo, crossover a un punto e mutazione.

Imparerai Algoritmi geneticiRicerca evolutiva
OptimizationSimulationai
Nessuna soluzione ancora
Facile

Bandito multi-braccio epsilon-greedy

Bilancia esplorazione e sfruttamento su un bandito multi-braccio con la selezione delle azioni epsilon-greedy.

Imparerai Esplorare o sfruttareBandit
Apprendimento per rinforzoaiapprendimento automatico
Nessuna soluzione ancora
Facile

Distribuzione degli stati di una catena di Markov

Propaga una distribuzione di probabilità attraverso la matrice di transizione di una catena di Markov per un certo numero di passi.

Imparerai Catene di MarkovProbabilità
Simulationaimath
Nessuna soluzione ancora
Media

Iterazione dei valori

Calcola quanto vale ogni stato di un processo decisionale di Markov applicando ripetutamente l'aggiornamento di ottimalità di Bellman.

Imparerai Equazione di BellmanMDP
Apprendimento per rinforzoaiapprendimento automatico
Nessuna soluzione ancora
Media

Aggiornamenti del Q-learning

Applica l'aggiornamento del Q-learning a un flusso di esperienze e guarda le ricompense risalire verso gli stati precedenti.

Imparerai Q-learningRicompense scontate
Apprendimento per rinforzoaiapprendimento automatico
Nessuna soluzione ancora
Media

Potatura alfa-beta

Valuta un albero di gioco con minimax e potatura alfa-beta, e conta quante foglie la ricerca esamina davvero.

Imparerai Potatura alfa-betaRicerca nei giochi
RecursionTreesai
Nessuna soluzione ancora
Media

Ricerca A* su una griglia pesata

Trova il percorso più economico attraverso una griglia di costi del terreno con A*, l'algoritmo di ricerca dietro il pathfinding di giochi e robot.

Imparerai Ricerca A*Euristiche
GraphsGridsShortest-pathai
Nessuna soluzione ancora
Media

Campionamento con temperatura e top-k

Scegli il token successivo come un modello linguistico: tieni i k logit più alti, applica la temperatura e campiona.

Imparerai Generazione di testoCampionamento
aiapprendimento automatico
Nessuna soluzione ancora
Difficile

Self-attention multi-head

Proietta l'input in query, key e value, esegui l'attenzione in più head in parallelo e combinale.

Imparerai Attenzione multi-headProiezioni matriciali
aiapprendimento automatico
Nessuna soluzione ancora
Media

Normalizzazione di layer

Normalizza ogni riga a media 0 e varianza 1, poi scala e trasla, come fa ogni blocco Transformer.

Imparerai Layer normalizationTransformer
Reti neuraliaiapprendimento automatico
Nessuna soluzione ancora

Esplora per argomento

Impara C e C++ insieme con codice pratico, output, memoria, strutture dati, algoritmi e C++ moderno.

Esempi C/C++ →

💻 Informazioni su questo esecutore C++ online

Il CodeUtility C++ Executor ti consente di scrivere ed eseguire codice C++ direttamente nel browser - senza installazioni o configurazioni del compilatore. È basato su una sandbox sicura che supporta gli standard C++ da C++11, C++14, C++17, fino alla versione più recente.

Questo strumento utilizza un vero compilatore C++ in esecuzione nel cloud per compilare ed eseguire il tuo codice, garantendo un comportamento accurato e coerente tra le versioni. Puoi sperimentare liberamente concetti base di C++ come variabili, funzioni, cicli, condizionali e programmazione orientata agli oggetti.

Che tu ti stia preparando per colloqui, imparando funzionalità moderne di C++ o verificando la logica di un algoritmo, CodeUtility C++ Executor offre un ambiente semplice ma potente per eseguire il codice istantaneamente da qualsiasi dispositivo.

Più di un semplice esecutore di codice

Usa nello stesso esecutore un editor multifile, un terminale di esecuzione isolato, librerie specifiche per il runtime, spazi di lavoro persistenti, condivisione e collaborazione in tempo reale.

Come si usa questo esecutore?

Scegli un runtime, apri o crea un file, scrivi il codice e seleziona Esegui. L’output appare nel terminale; gli utenti che hanno effettuato l’accesso possono conservare i file in uno spazio di lavoro, installare librerie e collaborare tramite le condivisioni.

  1. Seleziona una versione e modifica il file corrente oppure apri un altro file dello spazio di lavoro.
  2. Esegui il codice, inserisci i dati nel terminale quando richiesto e consulta la cronologia delle esecuzioni salvate.
  3. Usa librerie, strumenti dello spazio di lavoro, condivisione e chat quando l’attività richiede più di un frammento di codice.

💡 Basi di C++ ed esempi che puoi provare qui sopra

1. Dichiarare variabili e costanti

C++ richiede di dichiarare il tipo di ogni variabile. Usa const per definire valori di sola lettura che non possono essere modificati dopo l'inizializzazione.

int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;

// Costanti
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";

// Tentare di modificare un const causerà un errore in fase di compilazione
// MAX_USERS = 200; // ❌ errore

2. Condizionali (if / switch)

Usa if, else if, else per i rami. Usa switch per gestire più valori.

int x = 2;
if (x == 1) {
    std::cout << "Uno\n";
} else if (x == 2) {
    std::cout << "Due\n";
} else {
    std::cout << "Altro\n";
}

// Istruzione switch-case
switch (x) {
    case 1:
        std::cout << "Uno\n";
        break;
    case 2:
        std::cout << "Due\n";
        break;
    default:
        std::cout << "Altro\n";
}

3. Cicli

Usa for, while e do-while per ripetere blocchi di codice.

for (int i = 0; i < 3; i++) {
    std::cout << i << "\n";
}

int n = 3;
while (n > 0) {
    std::cout << n << "\n";
    n--;
}

4. Array

Gli array memorizzano più elementi dello stesso tipo.

int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";

5. Manipolazione di array/vettori

Usa std::vector per array dinamici.

#include <vector>

std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();

for (int n : nums) {
    std::cout << n << " ";
}

6. Input/Output da console

Usa std::cin per l'input e std::cout per l'output.

std::string name;
std::cout << "Inserisci il tuo nome: ";
std::cin >> name;
std::cout << "Ciao, " << name << "\n";

7. Funzioni

Le funzioni raggruppano logica riutilizzabile. Usa parametri e tipi di ritorno.

int add(int a, int b) {
    return a + b;
}

std::cout << add(3, 4);

8. Mappe

std::map memorizza coppie chiave-valore come i dizionari.

#include <map>

std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];

9. Gestione delle eccezioni

Usa try e catch per gestire gli errori a runtime.

try {
    throw std::runtime_error("Si è verificato un errore");
} catch (const std::exception& e) {
    std::cout << e.what();
}

10. I/O su file

Usa fstream per leggere e scrivere file.

#include <fstream>

std::ofstream out("file.txt");
out << "Ciao file";
out.close();

std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();

11. Manipolazione di stringhe

Le stringhe C++ supportano metodi come length(), substr() e find().

std::string text = "Hello World";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("World");

12. Classi e oggetti

C++ supporta la programmazione orientata agli oggetti tramite le classi.

class Person {
  public:
    std::string name;
    Person(std::string n) : name(n) {}
    void greet() { std::cout << "Ciao, sono " << name; }
};

Person p("Alice");
p.greet();

13. Puntatori

Un puntatore memorizza l'indirizzo di memoria di un'altra variabile. Usa & per ottenere un indirizzo, e * per dereferenziare (accedere al valore all'indirizzo).

int x = 10;
int* ptr = &x;

std::cout << "Valore di x: " << x << "\n";
std::cout << "Indirizzo di x: " << ptr << "\n";
std::cout << "Valore dal puntatore: " << *ptr << "\n";

// Modificare x tramite puntatore
*ptr = 20;
std::cout << "x aggiornato: " << x << "\n";

🐞 Come eseguire il debug di %{language} online

Usa il debugger %{language} online per trovare errori di runtime e logica senza installare compilatore o IDE. La modalità Server compila con simboli di debug ed esegue il programma con GDB.

  1. Imposta i breakpoint accanto ai numeri di riga.
  2. Seleziona Debug per compilare e fermarti al primo breakpoint.
  3. Controlla riga corrente, stack e variabili.
  4. Usa Continua, Step Over, Step Into o Step Out.
  5. Seleziona Stop per terminare la sessione.

Inizia con un esempio riproducibile e imposta il breakpoint appena prima del comportamento inatteso.