Una soluzione + bella sarebbe quella di creare una mappa come key il nome della coda e come valore la coda stessa.
std::map<std::string, cQueue> nameToQueue;
cQueue queue1;
nameToQueue["coda1"] = queue1;
//lo puoi fare perche il cQueue ha un copy constructor.
....
std::string name(getName());
std::map<std::string, cQueue>::iterator it = nameToQueue.find(name);
if(it != nameToQueue.end())
it->second.insert(msg);
così te ne fregi del nome della coda ecc. il messaggio verrà inserito nella coda giusta.