我正在尝试插入配对值< float,string>进入我的地图类
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
#include <set>
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<float,string> output;
output.insert(pair<float,string> ( 200.5, "foo" ));
output.insert(pair<float,string> ( 100.5, "batr" ));
map<float,string>::iterator mps1;
map<float,string>::iterator mps2;
mps1 = output.begin();
mps2 = output.end();
while (mps1 != mps2)
{
cout<<mps2->first
<<" "
<<mps2->second; //crashes here
mps1++;
}
system("PAUSE");
}
使用调试器时,它会在下一行
时崩溃<<mps2->second;
有人可以向我解释,谢谢
答案 0 :(得分:4)
您应该访问mps1
,而不是mps2
。
mps1
是你递增使用的迭代器; mps2
是“结束迭代器”,你不能解除引用。
这是一个非常基本的拼写错误/逻辑错误。