System () sem conversão adequada em C ++

Eu tenho 2 listas com nomes de arquivos.

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;

e quero comparar as 2 listas e excluir o valor correspondente. tudo parece estar bem até eu adicionar o "del / F / Q / A" ao 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);

        }
    }
 }

system (a) Diz que "não existe nenhuma função de conversão adequada de string std para const char *". Se eu colocar a coisa toda como 1 string, ela funcionará, mas não quando concatenar a string e o y.c_str (). Não tive sorte em tentar converter o std :: string em const * char, nem tenho certeza se isso ajuda.

questionAnswers(1)

yourAnswerToTheQuestion