こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

C++ の map についてです

C++の初心者です。よろしくお願いします。
DirectXを使っていて簡単なゲームを作っていまして、
mapを使っていると、このようなエラーが出てしまいどうしても理由わかりませんでした。

class D2DMap : public GameTexture{

protected:

GameTexture** CopyTexture;
int MaxMass;
int WidthMass;
int HeightMass;
int WidthMassPixel;
int HeightMassPixel;

int MassInfo[30][30];

public:
D2DMap();
virtual ~D2DMap();

HRESULT LoadMapTexture(int widthmass,
int widthmasspixel,int heightmass, int heightmasspixel,
const char* FileName, D3DCOLOR color);

HRESULT LoadTextMass(const char* FileName);

int GetWidthMassPixel(){ return WidthMassPixel;}
int GetWidthMassNum(){ return WidthMass;}

int GetHeightMassPixel(){ return HeightMassPixel;}
int GetHeightMassNum(){ return HeightMass;}

int GetMassInfo(int x, int y){ return MassInfo[y][x];}

void DrawMap(D3DCOLOR color);
void DrawCopyMap(D3DCOLOR color);

void SetCopyTex(GameTexture* copy){ CopyTexture= ©}

void Delete(){}
};

map<string , D2DMap*> MapBox; と定義して

string Name="--------";
D2DMap map;

MapBox.insert( map<string, D2DMap*>::value_type(Name, &map));
としたとこと
error C2275: 'std::string' : この型は演算子として使用できません
'std::string' の宣言を確認してください。
error C2059: 構文エラー : '>'
error C2039: 'value_type' : '`global namespace'' のメンバではありません

というエラーが出てきました。
mapのfind や iterator は可能なのですがinsertの場合エラー
となり、理由が全く分かりません。詳しい方アドバイスをお願いしたい
のですが、よろしくお願いします。

VC++2008 を使っています。

投稿日時 - 2009-05-10 02:05:55

QNo.4945891

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

> MapBox.insert( map<string, D2DMap*>::value_type(Name, &map));
の行ですが、コンパイラはmapを変数名として解釈してしまっているように見えますよ。

データ型のmap(std::map)と、変数名のmap(D2DMap map)
に同じ名前を使ってるのがよろしくないかもしれませんね。

投稿日時 - 2009-05-10 03:21:54

補足

無事解決しました。
名前がmapとかっぶていました。
初歩的なミス…。しかし、気づかなかったので本当にありがとうございました。

投稿日時 - 2009-05-11 03:05:07

お礼

ありがとうございました。
まだ試していませんが、早速修正してみたいと思います。

投稿日時 - 2009-05-10 15:15:09

あなたにオススメの質問