Сравнение 2 массивов:
var arr1 = [1,2,3];
var arr2 = [1,2,3];
function compare(arr1,arr2)
{
if((arr1 == arr2) && (arr1.length == arr2.length))
return true;
else
return false;
}
вызывающая функция
var isBool = compare(arr1.sort().join(),arr2.sort().join());
или использование stringstreams:
#include <sstream>
#include <iomanip>
std::stringstream ss;
ss << std::setw(10) << std::setfill('0') << i;
std::string s = ss.str();
я скомпилировал информацию, которую я нашел на arachnoid.com , потому что мне нравится безопасный с точки зрения типов способ iostreams больше. Кроме того, можно одинаково использовать этот код любого другого потока вывода.
char str[7];
snprintf (str, 7, "%06d", n);
См. snprintf
Одна вещь, что Вы можете , хочет знать, потенциал, блокирующий, который может продолжиться, когда Вы используете эти stringstream
подход. В STL, который поставляет с Visual Studio 2008, по крайней мере, существует много блокировок, вынутых и выпущенных, поскольку различная информация о локали используется во время форматирования. Это, или не может, может быть проблема для Вас в зависимости от того, сколько потоков Вы имеете, который мог бы одновременно преобразовывать числа в строки...
sprintf
версия не берет блокировок (по крайней мере, согласно контрольному инструменту блокировки, который я разрабатываю в данный момент...), и так могло бы быть 'лучше' для использования в параллельных ситуациях.
я только заметил это, потому что мой инструмент недавно выложил блокировки 'локали', как являющиеся среди наиболее спорившего для, привязывает мою систему сервера; это стало определенным удивлением и может заставить меня пересматривать подход, который я проявлял (т.е. попятитесь к sprintf
от stringstream
)...
stringstream сделает (, как xtofl указал ). формат Повышения является более удобной заменой для snprintf.
Этот метод не использует потоки, ни sprintf. Кроме наличия проблем блокировки, потоки подвергаются производительности наверху, и действительно излишество. Для потоков издержки прибывают из потребности создать потоковый буфер и пар. Для sprintf издержки прибывают из необходимости интерпретировать строку формата. Это работает, даже когда n отрицателен или когда строковое представление n более длительно, чем len. Это - Быстрое решение.
inline string some_function(int n, int len)
{
string result(len--, '0');
for (int val=(n<0)?-n:n; len>=0&&val!=0; --len,val/=10)
result[len]='0'+val%10;
if (len>=0&&n<0) result[0]='-';
return result;
}
Существует много способов сделать это. Самое простое было бы:
int n = 999;
char buffer[256]; sprintf(buffer, "%06d", n);
string str(buffer);
sprintf является подобным C способом сделать это, которое также работает в C++.
В C++, комбинация stringstream и потокового выходного форматирования (см. http://www.arachnoid.com/cpptutor/student3.html ) сделает задание.