STL マップで int と文字列のペアを出力しようとすると、問題が発生します。
これは私が使用しているコードです:
#include <iostream>
#include <utility>
#include <map>
using namespace std;
typedef map<int,string> intID;
int main(){
intID ID;
ID.insert(pair<int,string>(123,"studentname1"));
ID.insert(pair<int,string>(124,"studentname2"));
ID.insert(pair<int,string>(122,"studentname3"));
intID::iterator IDIter;
for(IDIter = ID.begin();IDIter != ID.end();++IDIter){
cout <<"ID: " << IDIter->first <<", Name: " << IDIter->second << endl;
}
}
エラーは、「これらのオペランドに一致する演算子はありません」と下線が引かれている", Name: " << IDIter->second
部分で発生します。<<
コンパイルエラーは次のとおりです。
エラー 1 エラー C2679: バイナリ '<<' : 'std::string' 型の右側のオペランドを取る演算子が見つかりません (または、受け入れ可能な変換がありません)
ペアの 2 番目のメンバー (studentname) を印刷しようとしています。STL マッピングは初めてなので、何が間違っているのかわかりません。何を変更する必要がありますか?