У меня есть структураЦитирование через карту со структурой как ключом.
struct key
{
int x;
int y;
int z;
};
скажем х, у, г может принимать значения от 1 до 10.
У меня также есть карта
std::map<key,double> myMap;
который я заселить с различными значениями ключа ,
Есть ли способ перебрать все ключевые значения, где say 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