連想配列の要素をfor文で舐めるコードを忘れていつも検索してしまいます. そのための備忘録です。
C++で連想配列を利用するには, mapというものを利用します.
やりたいこと
連想配列の要素を全て, keyとvalueを共に出力したい.
(下記のような入力で果物の名前とその値段を保持しておきたい.)
入力
5
banana 100
orange 250
grape 300
apple 150
lemon 450
結論
下記の通り.
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
map<string, int> mp; // 宣言. この例では, keyに文字列, valueに整数が入る.
for (int i = 0; i < n; i++) { string x; int y; cin >> x >> y; // 連想配列に格納する前にxとyを受け取る.
mp[x] = y; // 連想配列に格納.
}
for (auto e: mp) { // auto で型を勝手に推論してくれる.
cout << e.first << ":" << e.second << endl; // 出力 ex) banana:100 などのように出力される.
}
return 0;
}
軽く解説
eの部分にはkeyとvalueが含まれた情報が入ってる. keyを取り出すにはfirstをvalueを取り出すにはsecondを利用する.
コメント