Я знаю, как добавить целые числа в строки, но я не уверен, что делаю это эффективно. У меня есть класс, где мне часто приходится возвращать строку плюс целое число (каждый раз другое целое число), в Java я бы сделал что-то вроде
public class MyClass {
final static String S = "MYSTRING";
private int id = 0;
public String getString() {
return S + (id++);
}
}
Но в C ++ я должен сделать;
class MyClass {
private:
std::string S; // For some reason I can't do const std::string S = "MYSTRING";
int id;
public:
MyClass() {
S = "MYSTRING";
id = 0;
}
std::string getString() {
std::ostringstream oss;
oss << S << id++;
return oss.str();
}
}
Дополнительное ограничение: я не хочу (на самом деле, не могу) использовать Boost или любые другие библиотеки, мне придется работать со стандартной библиотекой.
Итак, дело в том; код работает, но в C ++ мне нужно создать кучу объектов ostringstream, поэтому кажется неэффективным. Чтобы быть справедливым, возможно, Java делает то же самое, и я просто не замечаю этого, я говорю, что это неэффективно, потому что я очень мало знаю о строках.
Есть ли более эффективный способ сделать это?