Avatar ·

¿Cuál es la diferencia entre #include <filename> y #include "filename" en C++?

¡Hola, colegas! Soy un desarrollador principiante de C++ y me encontré con un punto confuso. En los libros de texto y ejemplos de código veo dos formas de incluir archivos de encabezado: 1. `#include ` — con corchetes angulares. 2. `#include "myheader.h"` — con comillas. A primera vista, no hay diferencia — ambas opciones incluyen el archivo. Pero noté que las bibliotecas estándar (iostream, vector, string) siempre se escriben con corchetes angulares, mientras que mis propios archivos (por ejemplo, "myclass.h") se escriben con comillas. Intenté escribir `#include "iostream"` — el código se compiló y funcionó. Pero `#include ` dio un error "file not found". ¿Por qué sucede esto? ¿Es solo una convención de estilo o hay una diferencia técnica real? Me interesa especialmente: - ¿Cómo busca el compilador los archivos en cada caso? - ¿Afecta la elección al rendimiento? - ¿Hay situaciones en las que se debe usar exactamente una opción y no la otra? Aquí hay un ejemplo de mi código: ```cpp // main.cpp #include // funciona