Ошибка «xxxx» не называет тип

Я столкнулся с проблемой при попытке компилировать следующий код:

#include 
#include 
#include 
#include 
#include 

using namespace std;

map mapDial;

mapDial['A'] = 2;

int main()
{

  cout < mapDial['A'] < endl;
  return 0;
}

Ответы на вопрос(3)

вы можете выполнять только инициализацию. Например,

int a = 0;

Вы не можете делать нормальные заявления, такие как:

a = 9;

Поэтому я бы исправил код с помощью:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>

using namespace std;

map<char, int=""> mapDial;

int main()
{
  mapDial['A'] = 2;
  cout << mapDial['A'] << endl;
  return 0;
}
</char,></map></algorithm></cstring></cstdio></iostream>
 Lamian24 окт. 2012 г., 02:51
Большое спасибо !
Решение Вопроса

имости, поэтому

mapDial['A'] = 2;

незаконно Если у вас есть C ++ 11, вы можете сделать

map<char, int=""> mapDial {
    { 'A', 2 }
};
</char,>

Но если ты нет, тыпридется вызывать функцию инициализации изmain установить так, как вы хотите. Вы также можете заглянуть в конструкторmap который берет итератор и использует его с массивом в функции для инициализации карты, например

map<char, int=""> initMap() {
    static std::pair<char, int=""> data[] = {
        std::pair<char, int="">('A', 2)
    };

    return map<char, int="">(data, data + sizeof(data) / sizeof(*data));
}

map<char, int=""> mapDial = initMap();
</char,></char,></char,></char,></char,>
 Lamian24 окт. 2012 г., 02:45
Большое спасибо !
 Seth Carnegie24 окт. 2012 г., 02:50
@ user1596792, если он ответил на ваш вопрос, нажмите на флажок рядом с ним, чтобы отметить его как ответ

mapDial['A'] = 2; в глобальном масштабе. Они должны быть внутри функции.

Ваш ответ на вопрос