如何获取std :: map的前n个元素

Nor*_*ert 6 c++ resize stdmap shrink

由于在C++ std :: map中没有.resize()成员函数,我想知道如何获得最多n个元素的std :: map.

显而易见的解决方案是创建一个从0到n的循环,并使用第n个迭代器作为std :: erase()的第一个参数.

我想知道是否有任何解决方案不需要循环(至少不在我的用户代码中)并且更像是"STL方式".

xto*_*ofl 13

你可以用std::advance( iter, numberofsteps )它.