【发布时间】:2016-11-29 16:06:28
【问题描述】:
假设我在(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。
【问题讨论】:
-
std::next怎么样? -
为此我需要密钥
K的迭代器。 -
A
std::map总是有迭代器。我不确定你在问什么。 -
没有足够的信息 - 您是否确切地知道所有键 r1-r2 是什么,并且您将它们放在列表中?否则你怎么知道它们的样子?
-
我已经用例子更新了问题