solo un pequeño detalle tonto. No tiene nada que ver con la incidencia, pero aun así:
Esto:
es equivalente a:
O, si no quieres que load_vector devuelva un set:
Esto es así porque std::set es un contenedor que:
* Mantiene sus elementos debidamente ordenados
* No admite duplicados
Matas 2 problemas de un plumazo.
Eso sí, dos cosas a tener en cuenta:
* std::set no tiene push_back, no tendría sentido. En su lugar hay que usar "insert".
* std::set no incorpora el operador de indización "[]", para acceder a sus elementos se puede hacer uso de bucles tipo:
O si te gustan más, también lo puedes hacer con lambdas:
Y hablando ahora de tu problema... deberías asegurarte de que el archivo lo estás creando donde piensas. Prueba a poner la ruta completa. Puede ser que te esté intentando crear el archivo en otro directorio (el de trabajo, que no tiene que coincidir con el directorio donde se encuentra el ejecutable).
Esto:
Código (cpp) [Seleccionar]
vector<string> text = load_vector(filename);
sort(text.begin(), text.end());
text.erase(unique(text.begin(), text.end()), text.end());
es equivalente a:
Código (cpp) [Seleccionar]
set<string> text = load_vector(filename);
O, si no quieres que load_vector devuelva un set:
Código (cpp) [Seleccionar]
vector<string> temp = load_vector(filename);
set<string> text( temp.begin( ), temp.end( ) );
Esto es así porque std::set es un contenedor que:
* Mantiene sus elementos debidamente ordenados
* No admite duplicados
Matas 2 problemas de un plumazo.
Eso sí, dos cosas a tener en cuenta:
* std::set no tiene push_back, no tendría sentido. En su lugar hay que usar "insert".
* std::set no incorpora el operador de indización "[]", para acceder a sus elementos se puede hacer uso de bucles tipo:
Código (cpp) [Seleccionar]
for ( auto it = text.begin( ); it != text.end( ); ++it )
std::cout << *it << std::endl;
O si te gustan más, también lo puedes hacer con lambdas:
Código (cpp) [Seleccionar]
std::for_each( text.begin( ), text.end( ),
[]( const std::string& str )
{ std::cout << str << std::endl; } );
Y hablando ahora de tu problema... deberías asegurarte de que el archivo lo estás creando donde piensas. Prueba a poner la ruta completa. Puede ser que te esté intentando crear el archivo en otro directorio (el de trabajo, que no tiene que coincidir con el directorio donde se encuentra el ejecutable).