我正在编写此程序,为什么它在toupper('a')
中引发错误?
void test2(void) {
string n;
vector<string> v;
auto it = v.begin();
do {
cout << "Enter a name of a fruit: ";
cin >> n;
v.push_back(n);
} while (n != "Quit");
v.erase(v.end() - 1);
sort(v.begin(), v.end(), [](string g, string l) { return g < l; });
dis(v);
for (auto i : v) {
if (i.at(0) == toupper('a')) {
cout << i << endl;
v.erase(remove(v.begin(), v.end(), i));
}
}
dis(v);
}
有人可以帮助我找到错误吗?
由于您已经尝试实现擦除删除惯用语,因此在这种情况下可以使用它:
写这样的删除循环:
这里的问题: