Как отметил @Alexander Zhang, если у вас есть конкретный алгоритм, который вы можете использовать, простейшее решение вашей проблемы будет похоже на то, что предлагает @Ton van den Heuvel.
Если нет, то есть иальтернатива использования справочной таблицы (ссылка здесь здесь ), если у вас есть конкретные значения, которые совпадают.
Например.
#include <map>
.../
map<int,int> mapV1toIndex = {
{11, 1},
{12, 3},
.../
};
void foo(string bar, bool blam) {
int v1 = stoi(bar);
exArr[mapV1toIndex[v1]] = (blam) ? "A" : "B";
}
Кроме того, если вы хотите каждый раз использовать разные строковые массивы, вы можете передать массив строк в foo, например, чтобы повторно использовать функцию foo:
void foo(string *pStrArray, string bar, bool blam) {
int v1 = stoi(bar);
pStrArray[mapV1toIndex[v1]] = (blam) ? "A" : "B";
}
Редактировать:Предпочтительно использовать std :: map вместо struct.Отредактировал код для использования карты, следуя этой ссылке.