Aşağıdaki kod, dizenin son karakterini kaldıracak ve flip
doğruysa veya r
yanlışsa, l
(küçük harf L) ekleyecektir. flip
doğru olduğunda Üçlü işlemle ilgili tek davranış
std::stringstream ss;
ss << code.substr(0, code.size() - 1);
ss << flip ? "l" : "r";
std::string _code = ss.str();
Ancak,
1
ekler ve yanlış olduğunda, bu
0
ekler. Nasıl olur?
eldeki probleme göre, ama neden 'std :: stringstream' burada kullanmak değil mi? Sadece dizeyi kopyalayın ve son karakteri 's [s.size() - 1] = (flip? 'L': 'r');' kullanarak ayarlayın. (Bu konuda std :: strings: std :: istringstream' ve std :: ostringstream 'kodumda sık görünmesine rağmen, std :: stringsream' kullandığımı sanmıyorum.) –