Поскольку я знаю, что C++ только позволяет добавлять 2 строки вместе, т.е.: s = s1 + s2
Но как я могу добавить много строк вместе? Как:
s = s1 + s2 + s3 + s4 + ... + sn
Если вы пытаетесь добавить строковые объекты класса std::string, это должно сработать.
string s1 = "string1";
string s2 = "string2";
string s3 = "string3";
string s = s1 + s2 + s3;
OR
string s = string("s1") + string("s2") + string("s3") ...
Во-первых, вы можете сделать + sn вещь просто хорошо. Хотя это займет экспоненциальное квадрадичное (см. комментарии) время при условии, что вы используете std:: basic _ последовательность < t >
последовательностей на C++ 03.
Можно использовать std:: basic _ последовательность < t >:: append
в сочетании с std:: basic _ последовательность < t >:: reserve
для объединения последовательности за O (n) раз.
EDIT: Например,
string a;
//either
a.append(s1).append(s2).append(s3);
//or
a.append("I'm a string!").append("I am another string!");
s = s1 + s2 + s3 + .. + sn;
будет работать, хотя он может создать множество временных библиотек (хороший оптимизирующий компилятор должен помочь), потому что он будет эффективно интерпретироваться как:
string tmp1 = s1 + s2;
string tmp2 = tmp1 + s3;
string tmp3 = tmp2 + s4;
...
s = tmpn + sn;
Альтернативный способ, который гарантированно не создает временные библиотеки:
s = s1;
s += s2;
s += s3;
...
s += sn;
std :: ostringstream
создан для этого, см. Пример здесь . Это просто:
std::ostringstream out;
out << "a" << "b" << "c" << .... << "z";
std::string str( out.str());