целые числа для реализации символов - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь реализовать программу, в которой пользователь вводит число / int, и программа выводит соответствующий символ.Я думал сделать это с помощью векторов для хранения данных.Мне было интересно, есть ли более быстрый или лучший способ реализовать это?Данные хранятся в текстовом файле с большим количеством цифр, это просто пример.

{2300, V }
{2400, W }
{2500, X }
{2600, Y }
{2700, Z }
{2800, [ }
{2900, \ }

SAmple run:
input: 2300
output: V

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете использовать std::map (внутренне самоуравновешенное двоичное дерево поиска), которое даст log (N) временную сложность для извлечения элемента, или std::unordered_map (внутренне хеш-таблицу), которая даст постоянную временную сложность дляизвлечение элемента.

Пример ниже приведен в std::map, но вы можете легко изменить его на std::unordered_map

int main() {
  map<int, char> m;
  m[2300] = 'V';
  m[2400] = 'W';
  .... //Populate, store the elements in the map

  int input;
  cin >> input; //input should be a value in the map otherwise you may get a empty char
  cout << m[input] << endl;
  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...