mapクラスをstringオブジェクトで書いた時。
'A'と書くとエラーになります。"A"と書くとコンパイルは通るのですが、実行時にA以外の格納された文字をキーとして入力するとマップにはありませんと言われます。
charではなく、stringを使いたいのですが。うまく動かないのはstringが一文字を認識しないからですか。
c++
1#include <iostream> 2#include <map> 3#include <string> 4using namespace std; 5 6int main() 7{ 8 // mapクラス 9 map<string, int> m; 10 int i; 11 12 // マップにキー / 値を格納する 13 for (i = 0;i < 10;i++) { 14 m.insert(make_pair(("A"+i), i)); 15 } 16 17 string ch; 18 cout << "キーを入力:"; 19 cin >> ch; 20 21 map<string, int>::iterator p; 22 23 // 指定のキーの値を探す 24 p = m.find(ch); 25 if (p != m.end()) 26 cout << p->second; 27 else 28 cout << "キーはマップにない\n"; 29 30 return 0; 31}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/20 14:54