Как я могу напрямую найти количество элементов между любыми двумя итераторами, указывающими на два разных ключа в карте, без цикла for?
#include <string>
#include <iostream>
#include <map>
#include <utility>
#include <iterator>
#include <stdio.h>
using namespace std;
int main()
{
std::map<string, string> m;
m.insert(pair< string, string>("4-2"," 61-7" ));
m.insert(pair< string, string>("5-2"," 61-7" ));
m.insert(pair< string, string>("5-3"," 61-7" ));
m.insert(pair< string, string>("5-4"," 61-7" ));
m.insert(pair< string, string>("5-5"," 61-7" ));
m.insert(pair< string, string>("5-6"," 61-7" ));
map<string, string>::iterator it4;
map<string, string>::iterator it5;
it4=m.find("5-2");
it5=m.find("5-5");
cout << " value of it4" << it4->first << it4->second << endl;
cout << " value of it5" << it5->first << it5->second << endl;
m.clear();
getchar();
}
Мой желаемый результат - разница элементов между it5 и it4, которые здесь 2, так как элементы с ключами "5-3" и "5-4" лежат между ними. Я не хочу повторять цикл for, так как в моем случае количество элементов на карте достаточно велико. И я должен регулярно узнавать разницу. использование цикла for займет много времени, если два итератора находятся далеко.