Например, следующий код меняет строку, но что происходит, когда я добавляю каждый символ в строку? Это эффективно? Создает ли это новый массив символов каждый раз, или делает это в два раза больше каждый раз, когда он заполняет, или ?:Что происходит, когда вы объединяете символ в строку на C++?
#include <iostream>
#include <stack>
using namespace std;
int main()
{
string test = "testing";
stack<char> first;
for(int i = 0; test[i]; i++)
{
first.push(test[i]);
}
string reversed;
int i=0;
while(!first.empty())
{
reversed += first.top();
first.pop();
}
cout << test << reversed;
}
Почему вы не используете [std :: reverse] (http://en.cppreference.com/w/cpp/algorithm/reverse)? –
Прочтите это сообщение SO, чтобы узнать, как работает 'string' http://stackoverflow.com/questions/1466073/how-is-stdstring-implemented – Ankur
Использование стека не требуется и добавляет ненужную неэффективность. Более эффективным способом было бы преобразование строк (test.rbegin(), test.rend()); '. – juanchopanza