Допустим, есть map - вот такого вида:
map<string,pair<int,int>> operators_sw_map; //use in initialize method
есть метод, в котором происходит инициализация этого map:
void Initialize()
{ //второй параметр в pair - отвечает за приоритет операции
//чем больше число - тем выше приоритет
//0 - бинарная операция
//1 - унарная операция
//2 - блок скобок
operators_sw_map["&&"]=make_pair(0,0);
operators_sw_map["||"]=make_pair(1,0);
operators_sw_map["!"]=make_pair(2,1);
operators_sw_map["->"]=make_pair(3,0);
operators_sw_map["<-"]=make_pair(4,0);
operators_sw_map["<->"]=make_pair(5,0);
operators_sw_map["XOR"]=make_pair(6,0);
operators_sw_map["("]=make_pair(7,2);
operators_sw_map[")"]=make_pair(8,2);
}
Далее, я использую этот map в switch:
map<string,pair<int,int>>::iterator it= operators_sw_map.find(oper_statement[i]);//ищем оператор
if (oper_statement[i]=="!") {
unar_operations=1;
}
else {
unar_operations=0;
}
// проходимся по сгенерированной таблице
for (int j = 0; j < statement.size(); ++ j) {// столбец
for (int d = 0; d < LogicalTable[j].size(); d++) { //строка
switch (it->second) {
case 0: //&&
{
// .....
Вопрос:
как вот здесь -
switch (it->second)
обратиться к первому элементу std::pair - который, в свою очередь - является ключем в map ?