Ошибка в коде с++,

#include < iostream >
#include < map >
#include < utility >
int main()
{
   std::map < int, int > m1;
   std::map < int, int > m2(m1);
   std::map < int, int > m3 = m1;

   typedef struct std::pair < int, int > PAIR;
   std::map < int, int > m1;
   m1.insert(PAIR(0, 10));
   m1.insert(PAIR(1, 20));
   std::map < int, int > m2(m1.begin(), m1.end());
   system("pause");
   return 0;
}

Ошибка в переопределении m2.


Ответы (1 шт):

Автор решения: Harry

Ваша ошибка в том, что у вас одни и те же переменные - m1 и m2 - объявлены дважды.

std::map < int, int > m1;
std::map < int, int > m2(m1);

....
std::map < int, int > m1;

....
std::map < int, int > m2(m1.begin(), m1.end());

// Если тут написать, скажем, m2 = m1, то
// **какому** m2 - первому или второму - присвоить
// **какой** m1 - первый или второй?...
→ Ссылка