Compilador y depurador C++ online

Compila y depura C++ con puntos de interrupción, variables y pasos de GDB en modo Servidor.

Bibliotecas preinstaladas
🚀 2,393,974 ejecuciones totales (1,600 este mes)
Salida

Practica C++ con desafíos de código

Resuelve problemas prácticos en este editor: ejecuta las pruebas de ejemplo, envía tu solución y recibe una revisión de código por IA.

Todos los desafíos de C++
Fácil

Average of Three

Average three whole numbers.

Aprenderás AritméticaDivisión
BeginnerLearning-pathVariables
Fácil

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Aprenderás AritméticaValores de retorno
BeginnerLearning-pathVariables
Fácil

Unir clientes y pedidos

Une los clientes con sus pedidos como un Join de LINQ e informa del gasto total de cada uno.

Aprenderás LINQ JoinAgrupación
ArraysSorting
Aún no hay soluciones
Fácil

Lista de tareas

Lleva una lista de tareas: añádelas, márcalas como hechas, elimínalas e informa de las pendientes.

Aprenderás Colecciones tipadasRecords
BeginnerSimulationStrings
Aún no hay soluciones
Fácil

Operaciones en una lista enlazada

Simula una lista enlazada: añade en ambos extremos, elimina al principio o por valor, e inviértela.

Aprenderás Listas enlazadasSimulación
Data-structuresSimulation
Aún no hay soluciones
Fácil

Sumar un objeto JSON plano

Analiza un objeto JSON plano cuyos valores son enteros y suma los valores.

Aprenderás Análisis de JSONDivisión de cadenas
ParsingStrings
Aún no hay soluciones
Fácil

Tiempo total con WhenAll

Encuentra cuánto tarda un programa cuando cada grupo de tareas se ejecuta junto con Task.WhenAll y los grupos se ejecutan uno tras otro.

Aprenderás Async/awaitTask.WhenAll
ArraysBeginner
Aún no hay soluciones
Intermedio

Orden de finalización de tareas paralelas

Ejecuta tareas concurrentemente con como máximo k a la vez e informa el orden en que terminan.

Aprenderás ConcurrenciaColas de prioridad
SimulationSorting
Aún no hay soluciones
Intermedio

Pila con mínimo

Construye una pila que informe instantáneamente de su elemento más pequeño después de cualquier push o pop.

Aprenderás PilasMínimo acumulado
Data-structuresStacks
Aún no hay soluciones
Fácil

Registros únicos

Elimina registros duplicados que sean iguales por valor, conservando el primero de cada uno en orden.

Aprenderás RecordsIgualdad por valor
BeginnerStrings
Aún no hay soluciones
Fácil

Ordenar por una clave elegida

Ordena a las personas por nombre o por edad con un comparador elegido en tiempo de ejecución, resolviendo los empates de forma consistente.

Aprenderás ComparadoresOrdenación
ArraysSorting
Aún no hay soluciones
Intermedio

Nómina semanal

Calcula el total del pago semanal para empleados asalariados, por hora y por comisión, cada uno pagado por su propia regla.

Aprenderás PolimorfismoCálculo de horas extra
ParsingSimulationmath
Aún no hay soluciones

💻 Acerca de este ejecutor de C++ en línea

El Ejecutor de C++ de CodeUtility te permite escribir y ejecutar código C++ directamente en tu navegador - sin instalación ni configuración de compilador. Funciona con una sandbox segura que admite estándares reales de C++ desde C++11, C++14, C++17, hasta la última versión.

Esta herramienta usa un compilador C++ real en la nube para compilar y ejecutar tu código, garantizando un comportamiento preciso y consistente entre versiones. Puedes experimentar libremente con conceptos básicos de C++ como variables, funciones, bucles, condicionales y programación orientada a objetos.

Ya sea que te estés preparando para entrevistas, aprendiendo funciones modernas de C++ o verificando la lógica de algoritmos, el Ejecutor de C++ de CodeUtility ofrece un entorno simple pero potente para ejecutar código al instante desde cualquier dispositivo.

Más que un ejecutor de código

Utiliza un editor de varios archivos, un terminal de ejecución aislado, bibliotecas específicas del entorno, espacios de trabajo persistentes, opciones para compartir y colaboración en tiempo real desde el mismo ejecutor.

¿Cómo se utiliza este ejecutor?

Elige un entorno de ejecución, abre o crea un archivo, escribe el código y selecciona Ejecutar. El resultado aparece en el terminal; los usuarios que han iniciado sesión pueden conservar archivos en un espacio de trabajo, instalar bibliotecas y colaborar mediante elementos compartidos.

  1. Selecciona una versión y edita el archivo actual o abre otro archivo del espacio de trabajo.
  2. Ejecuta el código, introduce datos en el terminal cuando se soliciten y revisa el historial de ejecuciones guardado.
  3. Utiliza bibliotecas, herramientas del espacio de trabajo, opciones para compartir y el chat cuando la tarea requiera más de un fragmento.

💡 Conceptos básicos de C++ y ejemplos que puedes probar arriba

1. Declaración de variables y constantes

C++ requiere declarar el tipo de cada variable. Usa const para definir valores de solo lectura que no pueden cambiarse después de la inicialización.

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

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

// Intentar modificar un const provocará un error en tiempo de compilación
// MAX_USERS = 200; // ❌ error

2. Condicionales (if / switch)

Usa if, else if, else para ramificar. Usa switch para múltiples valores.

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

// Switch-case
switch (x) {
    case 1:
        std::cout << "Uno\n";
        break;
    case 2:
        std::cout << "Dos\n";
        break;
    default:
        std::cout << "Otro\n";
}

3. Bucles

Usa for, while y do-while para repetir bloques de código.

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

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

4. Arreglos

Los arreglos almacenan múltiples elementos del mismo tipo.

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

5. Manipulación de arreglos/vectores

Usa std::vector para arreglos dinámicos.

#include <vector>

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

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

6. Entrada/Salida por consola

Usa std::cin para entrada y std::cout para salida.

std::string name;
std::cout << "Ingresa tu nombre: ";
std::cin >> name;
std::cout << "Hola, " << name << "\n";

7. Funciones

Las funciones agrupan lógica reutilizable. Usa parámetros y tipos de retorno.

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

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

8. Mapas

std::map almacena pares clave-valor como diccionarios.

#include <map>

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

9. Manejo de excepciones

Usa try y catch para manejar errores en tiempo de ejecución.

try {
    throw std::runtime_error("Ocurrió un error");
} catch (const std::exception& e) {
    std::cout << e.what();
}

10. E/S de archivos

Usa fstream para leer y escribir archivos.

#include <fstream>

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

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

11. Manipulación de cadenas

Las cadenas de C++ admiten métodos como length(), substr() y find().

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

12. Clases y objetos

C++ admite programación orientada a objetos mediante clases.

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

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

13. Punteros

Un puntero almacena la dirección de memoria de otra variable. Usa & para obtener una dirección, y * para desreferenciar (acceder al valor en esa dirección).

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

std::cout << "Valor de x: " << x << "\n";
std::cout << "Dirección de x: " << ptr << "\n";
std::cout << "Valor desde el puntero: " << *ptr << "\n";

// Modifica x mediante el puntero
*ptr = 20;
std::cout << "x actualizada: " << x << "\n";

🐞 Cómo depurar código %{language} online

Usa el depurador %{language} online para encontrar errores de ejecución y lógica sin instalar un compilador o IDE. El modo Servidor compila con símbolos de depuración y ejecuta el programa con GDB.

  1. Añade puntos de interrupción junto a los números de línea.
  2. Selecciona Depurar para compilar y pausar en el primer punto coincidente.
  3. Inspecciona la línea, la pila de llamadas y las variables.
  4. Usa Continuar, Paso por encima, Paso a paso o Salir.
  5. Selecciona Detener para finalizar la sesión.

Empieza con un ejemplo mínimo reproducible y coloca el punto de interrupción antes del comportamiento inesperado.