Bez względu na to ile by ich było jeśli nie możesz znaleźć bepośreniego związku pomiędzy np. kodami ASCII i zwracanymi liczbami trzeba rozpatrzeć każdy przypadek osobno. I albo to wyifowujesz albo budujesz jakąś kolekcje zawierającą wszystkie wariacje:
char A[] = {'A','B','C','D' ...
int B[] = {2, 2, 2, 3 ...
Od C++11 jest fajna inicializacja słowników:
map<char, int> m = {
{'A', 2},
{'B', 2},
{'C', 2},
{'D', 3}
...
};