假设我在范围内有 (r1,r2]
中的对象,我想将其插入地图的键。他们没有迭代器/下一个定义,但比操作员少。我该怎么做:
template< class K, class V>
void foo( K r1, K r2, V val ) {
for(K key = r1; key < r2; ++key )
{
mMap.insert(make_pair(key,val));
}
}
我不能使用++key
。
K
可以是任何类型的copyable
,assignable
,具有opertor<
,但没有equality operator
和arithmetic operators
。
键的迭代性是无关紧要的,地图在键集上实现了迭代。通过hashmap在迭代中看到一些东西:
Map<String, Object> map = ...;
for (String key : map.keySet()) {
// ...
}
或在C 地图中的迭代键中更近的键:
for(std::map<Key,Val>::iterator iter = myMap.begin(); iter != myMap.end(); ++iter)
{
}
您可以使用std :: map class
的迭代器您可以开始使用
您可以使用类型std::map<type,type>::iterator
的迭代器编写for循环 然后按预期使用所有操作员