mapクラスについて – プログラミング – Home

通知
すべてクリア

[解決済] mapクラスについて


pt
 pt
(@pt)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

mapクラスを勉強しています。

例えばなんですが map クラスに2つのキーとそのキーに対応したデータ型を指定するこ
とはできるのでしょうか?日本語になってなくてすいません…

具体的に言うと
map<int, std::string, HWND> myMap;

みたいな感じでmyMapに int と std::string を指定すると HWND が得られるというのは
できるのでしょうか?


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

一番簡単な方法。

int と std::string を1つの文字列にしてしまうとか。
たとえば、カンマとか適当な文字でつなげた文字列をキーにするとか。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

あまり検証していないけど、こんな感じでしょうかね。

#include <iostream>
#include <string>
#include <map>

int main()
{
std::map< std::pair< int, std::string >, int > myMap;
myMap[ std::pair< int, std::string >( 1, test ) ] = 10;
myMap[ std::pair< int, std::string >( 2, test ) ] = 20;
myMap[ std::pair< int, std::string >( 1, hoge ) ] = 30;
myMap[ std::pair< int, std::string >( 3, hoge ) ] = 40;

std::cout << myMap[ std::pair< int, std::string >( 2, test ) ]
<< std::endl;
std::cout << myMap[ std::pair< int, std::string >( 1, hoge ) ]
<< std::endl;

return 0;
}


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

お探しのものは、こんなのですか>Boost MultiIndex Container


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

map<int, map<string, HWND> > とか。


返信引用
pt
 pt
(@pt)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

返信ありがとうございます。

Blueさんの方法で解決しました。
dairygoodsさんの方法でもうまくいきました。

Boost MultiIndex Containerも調べてみます。

どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました