Добрый вечер. У меня имеется вот такая задачка: Создайте вектор, хранящий десять строковых значений " zero " , " one " , " . , "nine " . Используйте его в программе, преобразующей цифру в соответствующее строковое представление: например, при вводе цифры 7 на экран должна быть выведена строка seven. С помощью этой же программы , используя тот же цикл ввода, преобразуйте строковое представление цифры в числовое: например, при вводе строки seven на экран должна быть выведена цифра 7. Я решил её с помощью оператора switch. Мне интересно было бы узнать: Каким образом можно решить её по другому (без использования операторов), и как преобразовать vector в int. Буду благодарен за информацию)
Вопрос звучит странно. "Без опрераторов" - без каких? Оператор сравнения, например, разрешен? :)
Не менее странно и "как преобразовать вектор в int". В какой int вы хотите преобразовывать весь вектор?
Что же самой задачи, то при наличии
vector<string> vs{"zero","one",...,"nine"};
никакой switch не нужен: для цифры digit надо просто вывести vs[digit] (ну, или если это - символ, то вывести vs[digit-'0']).
Вывести цифру для строки сложнее, тут и в самом нужно что-то типа switch - но поиск с помощью алгоритма find проще и короче:
auto it = find(vs.begin(),vs.end(),digit_string);
if (it == va.end())
cout << "Wrong string\n";
else
cout << *it << endl;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости