Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Моя реализация функции перевода string в int - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структура «Железнодорожный состав» http://www.cyberforum.ru/cpp-beginners/thread741289.html
Создайте консольное приложение для решения задачи С++ Структура «Железнодорожный состав» с полями "номер поезда", "количество вагонов", "модель вагонов" (в одном составе используются вагоны одной...
C++ Виртуальные функции Можете привести пример виртуальной функции с использованием ссылок? http://www.cyberforum.ru/cpp-beginners/thread741278.html
C++ Структура «Железнодорожный состав»
Структура «Железнодорожный состав» с полями "номер поезда", "количество вагонов", "модель вагонов" (в одном составе используются вагоны одной модели). Бизнес-функция: расчёт длины состава по длине...
Другие виды списков C++
Помогите найти и исправить ошибку в задачке В текстовом файле заданы действительные числа. Выбрать из него убывающую последовательность наибольшей длины и вывести ее на экран. Если таких...
C++ Наибольшее из трех чисел http://www.cyberforum.ru/cpp-beginners/thread741266.html
Составить функцию, которая получает три аргумента х, y, и z, и возвращает как результат наибольшее из х,y,z.
C++ Заменить каждую из групп точек одной точкой Ввести строку. Создать функцию, позволяющую заменить в заданной строке каждую из групп стоящих рядом точек одной точкой. Если знака <<.>> нет в строке, то вывести сообщение об етом.(использовать... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
21.12.2012, 23:06
Цитата Сообщение от ValeryS Посмотреть сообщение
m+= a[i]-'0';
вот это можно заменить на
C++
1
m+= a[i]&0x0F;
правда не знаю добавит ли это скорости
а это
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
if( '0'<=a[i] &&a[i]<='9')
{
m*=10;
m+= a[i]-'0';
}
else
{
return 0;//если строка будет иметь "не int-овый" вид
}
на это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
switch(a[i])
{
 case '0':
 case '1':
 case '2':
 case '3':
 case '4':
 case '5':
 case '6':
 case '7':
 case '8':
 case '9':
        m*=10;
       m+= a[i]-'0';
       break;
default:
      return 0;
}
если switch будет реализован таблично то скорость возрастет если нет останется прежней
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru