std :: cout for map <string,int =“”>

时间:2015-06-06 02:44:38

标签: c++ dictionary std cout

我的地图声明如下

map<string, int> symbolTable;


if(tempLine.substr(0,1) == "("){
            symbolTable.insert(pair<string, int>(tempLine, lineCount));
        }

我如何 std :: cout 我的符号表中的所有内容?

3 个答案:

答案 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,这很可悲......