Вывод на консоль чисел и их квадратов в двух
выровненных столбцах.
#include <iostream>
#include <string>
const int iUpTo=100;
int main()
{
char* charsSpace=(char*)malloc(32);
_itoa(iUpTo,charsSpace,10);
std::string strSpace=std::string(charsSpace);
std::string::size_type szMax=strSpace.size();
int n;
for (int i=0; i<=iUpTo;i++){
n=szMax+1-(std::string(_itoa(i,charsSpace,10)).size());
std::cout <<i <<std::string(n,' ') <<i*i <<std::endl;
}
free((void*)charsSpace);
std::string strDummy;
std::cin >> strDummy;
return 0;
}
Меня беспокоит выделенная строка. То есть только для того, чтобы определить размер разрыва между столбцами, я создаю копирую символьное представление числа в область памяти на которую указывает charsSpace, потом создаю std::string и получаю его size(). Как добиться того же эффекта выравнивания более производительно?
Спасибо!
... << RSDN@Home 1.1.3 stable >>