typedef map<int, string> iMap;
typedef map<double, innerMap> OutMap;
OutMap mx;
map<double, iMap >::iterator it_out;
map<int, string>::iterator it_i;
for ( it_out=mx.begin() ; it_out != mx.end(); it_out++ ) {
cout << "\n\nNew element\n" << (*it_out).first << endl;
for( it_i=(*it_out).second.begin(); it_i != (*it_out).second.end(); it_out++)
cout << (*it_i).first << " => " << (*it_i).second << endl;
}
我很确定上面的代码很好...... 有任何性能问题......?
答案 0 :(得分:3)
除了
之外,它无法进一步改进++it_out
而不是it_out++
。'\n'
代替endl
。使用'\n'
会以合理的余量提高输出操作的性能,因为endl
首先将'\n'
放入输出缓冲区,然后将其刷新到目标(stdout
case)这使得它运行缓慢。请注意,您应该在内部it_i
循环中增加it_out
(而不是for
)。我想这是一个错字。