Edd*_*Edd 1 c++ containers stl
我在尝试打印STL Map中的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;
}
}
Run Code Online (Sandbox Code Playgroud)
错误发生在该", Name: " << IDIter->second部分,<<加下划线说"没有运算符匹配这些操作数"
编译错误是:
错误1错误C2679:二进制'<<':没有找到哪个运算符采用'std :: string'类型的右手操作数(或者没有可接受的转换)
我试图打印出该对的第二个成员(学生名)我是STL映射的新手,所以我不确定我做错了什么,我需要改变什么?
您需要包含<string>标题.您只能std::string通过其他标头中的附带包含来使用该类型.你不能依赖这个.包括<string>还会带来operator<<允许输出字符串的重载.
| 归档时间: |
|
| 查看次数: |
542 次 |
| 最近记录: |