我有一个结构循环通过结构作为关键的地图。
struct key
{
int x;
int y;
int z;
};
说的x,y和z可以取的值从1到10
我也有一个地图
std::map<key,double> myMap;
我与不同的密钥值填充。
有没有一种方法来循环所有的关键值,其中说z = 5。这是(在伪代码方面)
loop over myMap
double v += myMap.find({x=anything,y=anything,z=5})->second;
这将是很亲切,如果有人可以提供一些意见,这是否是可以实现的(我不想使用升压容器)。
这很好,但是你最好使用'(5,INT_MIN,INT_MIN)=>(5,INT_MAX,INT_MAX)'或者你的搜索范围。这里的整数已经签名。 – QuestionC
@QuestionC同意,更新的答案,谢谢 – Slava
因为它不执行任何复制,所以首选[std :: tie](http://en.cppreference.com/w/cpp/utility/tuple/tie)用于字典对比。此外,'k1.y'和'k2.y'代替'k1,y'等。好的答案。 – AndyG