Просто потому, что я не вижу здесь примера C ++ 11, я остановлюсь и опубликую этот хороший пример из здесь . После поиска это самый яркий пример, который я смог найти.
template
void Eval( const F& f ) {
f();
}
void foo() {
Eval( []{printf("Hello, Lambdas\n");} );
}
void bar() {
auto f = []{printf("Hello, Lambdas\n"); };
f();
}
Прежде всего, я не думаю, что вы сможете отличить двузначное число с помощью этого метода.
Я ссылаюсь на эту часть вашего кода: string numbers = "123456789
10
";
Перебирайте строковые символы и анализируйте Int (если это то, что требуется) ( credit ) ( кредит )
foreach (char character in yourString)
{
int x = (int)Char.GetNumericValue(character);
//code to add to your array of ints
}
Замените ваш код типом
array[i - 1] = numbers[i - 1] - '0';
char
типа 2 байта и представляет символ Unicode
, если вы рассматриваете char как int, это будет [ 113] индекс элемента в таблице Unicode
'0' == 30, а '0' - 30-е элемент в таблице Unicode, '9' является 39-м
, мы не можем вычесть int из char, поэтому мы вычли char из char
, чтобы не делать преобразования между int и char и т. д.