我有一個結構循環通過結構作爲關鍵的地圖。
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