Получить значение в 2D векторе с заданным ключом

0

У меня есть 2D-вектор, в котором я хочу использовать символ-символ, чтобы найти значение. Например,

Вот мой векторный тип:

vector<pair<char, double>>

characters: a b c d
double: 1.1 2.1 7.1 1.3

каждый двойной coorelates с символьным значением. Я хочу найти вектор для персонажа и дать ему его соответствующее двойное значение. Как я могу это сделать, используя этот векторный тип?

Теги:
vector
pair

2 ответа

1
Лучший ответ
char key = 'a';
auto find_it = find_if(myvec.begin(), myvec.end(), [key](const pair<char, double>& x) { return x.first == key; });
double value;
if (find_it != myvec.end())
{
    value = find_it->second;
}
1
void find(char a,vector<pair<char,double>> tmpvec){
    for(auto iter = tmpvec.begin();iter != tmpvec.end();iter ++)
        if(iter->first == a){
            cout << iter->second << endl;
                    return;
            }
    cout << "nothing" << endl;
}

Лучшая структура данных - это dictionary такой как map в cpp. Ключ - это тип char и value с double типом;

map<char,double> tmpmap;
tmpmap['a'] = 1.1;
tmpmap['b'] = 1.7;
..............
char p;
cin >> p;
if ((auto iter =tmpmap.find(tmpmap.begin(),tmpmap.end()) != tmpmap.end(),p))
    cout << iter->second << endl;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню