-4
我知道如何删除尾随逗号,但我似乎无法弄清楚如何从所有迭代中删除尾随逗号,因为我的代码只删除最后一个。我得到的输出是调用此方法时,以下多次:删除所有迭代中的尾随逗号
A:on 0 -> B, on 1 -> A,
B:on 0 -> C, on 1 -> A,
C:on 0 -> C, on 1 -> A
string FSA::transitions_to_string(string s) {
std::ostringstream oss;
string output = "";
map<string, string>::iterator itr1;
map<string, map<string, string> >::iterator itr2;
map<string, map<string, string> >::iterator itr3;
itr3 = table_.find(s);
if (itr3 == table_.end()) {
throw domain_error (s + " doesn't exist");
}
for (itr2 = table_.begin(); itr2 != table_.end(); itr2++) {
oss << itr2->first << ":";
for (itr1 = itr2->second.begin(); itr1 != itr2->second.end(); itr1++) {
oss << "on " << itr1->first << " -> " << itr1->second << ", ";
output = oss.str();
}
oss << endl;
}
return output.substr(0, output.size() - 2);
}
你是写逗号的人,所以你不需要“删除”它;只是不要把它写在第一位。 –
我不知道你是否知道这段代码的作用?它是如何工作的?你自己写了吗? –
我只是想删除最后一个尾随逗号,所以输出实际上是: 'A:在0 - > B,在1 - > A B:在0 - > C,在1 - > A C:开0 - > C,on 1 - > A' – FireGriffin