使用指向STL映射的操作

Ala*_*ejo 0 c++ pointers map

我需要知道两个指向STL映射的指针之间的区别

例如:使用矢量很简单

vector<pair<int, int> > v;
v.push_back(make_pair(0, 1));
v.push_back(make_pair(2, 3));
v.push_back(make_pair(4, 5));
v.push_back(make_pair(6, 7));
v.push_back(make_pair(8, 9));

vector<pair<int, int> >::iterator itrBegin = v.begin();
vector<pair<int, int> >::iterator itrEnd = v.end();

cout << itrEnd - itrBegin << endl;
Run Code Online (Sandbox Code Playgroud)

产量 5

但是,我想使用STL映射执行相同的操作

map<int, int> m;
m[0] = 1;
m[2] = 3;
m[4] = 5;
m[6] = 7;
m[8] = 9;

map<int, int>::iterator itrB = m.begin();
map<int, int>::iterator itrE = m.end();

cout << ????????????? << endl;
Run Code Online (Sandbox Code Playgroud)

Dav*_*own 6

你可以使用std::distance:

std::cout << std::distance(iterB, iterE) << std::endl;
Run Code Online (Sandbox Code Playgroud)