我有一个自定义类“团队”,它的属性之一是它的“名称”。创建每个“团队”后,我将其添加到矢量团队列表中。
我想实现一个功能,不断提示用户输入一个团队名称,该名称尚未被团队列表中的团队使用。我有以下代码:
while (true) {
string newString;
bool flag = true;
getline(cin, newString);
for (int i = 0; i < teamList.size(); i++) {
if (teamList[i].name.compare(newString) == 0) flag = false;
}
if (flag == true) {
return newString;
} else {
cout << "name already taken." << endl;
}
}
但是,这段代码真的很难看;有没有更好的检查方法?另外,一个更普遍的问题——面对丑陋的代码问题(比如这个),我可以采取哪些步骤来找到一个新的、更干净的实现?谢谢。