Использование и обращение к std::pair в std::map?
От: BadCats  
Дата: 20.07.19 12:21
Оценка:
Допустим, есть 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 ?
c++ c++11
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.