Sistema () sin conversión adecuada C ++

Tengo 2 listas con nombres de archivos.

std::list<std::string> userfontlist;
std::list<std::string>::iterator it;
std::list<std::string> CAATfontlist;
std::list<std::string>::iterator it2;
std::list<std::string> doesnthavelist;

y quiero comparar las 2 listas y eliminar el valor que coincide. todo parece estar bien hasta que agregue "del / F / Q / A" a y.c_string ().

for (it = userfontlist.begin(); it !=userfontlist.end(); ++it){
    for(it2 = CAATfontlist.begin();it2 !=CAATfontlist.end();++it2){
        if(*it==*it2){
            string y = *it;
            string k = y.c_str();
            string a = "del /F /Q /A " + k;
            system(a);

        }
    }
 }

el sistema (a) dice que "no existe una función de conversión adecuada de cadena estándar a const char *". Si pongo todo como 1 cadena, funciona, pero no cuando concateno la cadena y el y.c_str (). No he tenido suerte tratando de convertir el std :: string a const * char, ni siquiera estoy seguro de si eso ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta