1. std::stoi/std::strtoi и подобные функции
Примеры тут:
https://en.cppreference.com/w/cpp/string/basic_str...
2. Что именно вам не понятно в применении констант? Приведите пример непонятного?
const int bad_id = -1;
...
int new_id = bad_id;
Смысл в том, чтобы применять не саму константу (в примере -1), а ее именованный эквивалент, имя которого должно иметь смысл для читающего код. При этом по коду у вас может быть несколько одинаковых констант с разным смыслом. Для каждой такой константы нужно создать свою символьную константу.
https://ravesli.com/urok-37-simvolnye-konstanty-co...