Ejemplo de expresiones regulares en C++11

Las mejores de C++11 son evidentes. Dos ejemplos son la facilidad de convertir un entero a cadena en C++ o utilizar bucles for basados en rangos.

Aquí os muestro, mediante un ejemplo, la facilidad con la que en C++11 se manejan expresiones regulares:

#include <iostream> #include <regex> #include <string> int main() { const std::regex patron("(0+1+0+)"); const std::string palabra1("00010"); const std::string palabra2("abc00010def011110ghi"); // ¿Coincide la palabra con el patrón? std::cout << std::boolalpha << std::regex_match(palabra1, patron) << std::endl; std::cout << std::boolalpha << std::regex_match(palabra2, patron) << std::endl; return 0; } read more

Leer más » 1 Comentario

Nuevos bucles ‘for’ basados en ‘range’ gracias a C++11

Una de las ventajas del nuevo C++11 son los bucles. Sólo hay que comprobar con este ejemplo la simplicidad de esta nueva versión del lenguaje:

#include #include int main(int argc, char *argv[]) { std::vector v = {0, 1, 2, 3, 4, 5}; for (int i : v) // acceso por valor. std::cout << i << ' '; std::cout << std::endl; for (auto i : v) // acceso por valor usando 'auto' std::cout << i << ' '; std::cout << std::endl; for (int &i : v) // acceso por referencia (puedes usar 'const') std::cout << i << ' '; std::cout << std::endl; } read more

Leer más » 1 Comentario

Compilar en el nuevo estándar C++0x, más conocido como C++11, en GNU G++

C++ es un lenguaje que evoluciona pero lentamente. Esto es debido a que existen muchos compilares y crear un nuevo estándar es complicado. El nuevo C++11 incluye varias adiciones al núcleo del lenguaje y extiende la biblioteca estándar de C++.

Para compilar en C++11 en G++ sólo tienes que añadir el siguiente flag:

g++ fuente.cpp -std=c++0x

Leer más » 3 Comentarios