still not good here, I rewrite that:

   // clean the redundant recent games' list.
			if (cleanedRecent.size()==0){ // add first one
					cleanedRecent.push_back(recentIsos[i]);
			}
			for (size_t j=0; j<cleanedRecent.size();j++){
				if ((std::string)cleanedRecent[j]==(std::string)recentIsos[i])
					break; // skip if found redundant
				if (j==cleanedRecent.size()-1){ // add if no redundant found
					cleanedRecent.push_back(recentIsos[i]);
				}
			}

when if (cleanedRecent.size()==0) is checked outside of "for" will be just okay.