Вы можете сделать это легко с insert
и std::next
.
std::map
не имеет итераторов с произвольным доступом, только двунаправленные итераторы, поэтому операции + n
нет. Так что std::next
требуется.
#include<iostream>
#include<map>
#include<algorithm>
int main()
{
std::map<int, std::string> results, results2;
results = {{1, "A"}, {2, "B"}, {3, "C"}, {4, "D"}};
results2.insert(std::next(results.begin()), results.end()); //from second element onwards
for(auto const& m: results)
std::cout << m.first << ' ' << m.second << ' ';
std::cout << '\n';
for(auto const& m: results2)
std::cout << m.first << ' ' << m.second << ' ';
}
См. Демонстрацию