我的地图声明如下
map<string, int> symbolTable;
if(tempLine.substr(0,1) == "("){
symbolTable.insert(pair<string, int>(tempLine, lineCount));
}
我如何 std :: cout 我的符号表中的所有内容?
答案 0 :(得分:4)
在现代C ++中:
System.out.printf("The date for today is" + tntobject);
如果您只能访问pre-C ++ 11编译器,则代码为:
for (auto&& item : symbolTable)
cout << item.first << ": " << item.second << '\n';
答案 1 :(得分:2)
如果您的编译器不符合C ++ 11标准,那么这里有另一种选择:
for (map<string, int>::iterator it = symbolTable.begin();
it != symbolTable.end(); ++it)
{
cout << it->first << " " << it->second << endl;
}
为了完整起见,如果是:
for (auto& s : symbolTable)
{
cout << s.first << " " << s.second << endl;
}
答案 2 :(得分:1)
您可以使用循环打印所有键/值对。下面的代码是C ++ 11中的一个例子
for (const auto& kv : symbolTable) {
std::cout << kv.first << " " << kv.second << '\n';
}
ps:其他两个答案都很少关注const
,这很可悲......