#include <map>
#include <utility>
#include <tuple>
#include <iostream>
#include <string>
typedef std::map< std::tuple<std::string, std::string, int, int>, int> Table;
int main()
{
Table my_table;
std::string a = "Kode", b = "Warrior";
int c = 3, d = 4, e = 5;
// 1. Support insert operations for each row.
my_table.insert(std::make_pair(std::make_tuple(a, b, c, d), e));
// 2. Given the values for Col1, Col2, Col3, Col4 find the value of Col5
auto it = my_table.find(std::make_tuple(a, b, c, d));
std::cout << it->second; // prints e
// 3. Given Col1, Col2, COl3, Col4 update Col5
it->second = 6; // assign some other value
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDx0dXBsZT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgogCnR5cGVkZWYgc3RkOjptYXA8IHN0ZDo6dHVwbGU8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nLCBpbnQsIGludD4sIGludD4gVGFibGU7CiAKaW50IG1haW4oKQp7CiAgICBUYWJsZSBteV90YWJsZTsKICAgIHN0ZDo6c3RyaW5nIGEgPSAiS29kZSIsIGIgPSAiV2FycmlvciI7IAogICAgaW50IGMgPSAzLCBkID0gNCwgZSA9IDU7CiAKICAgIC8vIDEuIFN1cHBvcnQgaW5zZXJ0IG9wZXJhdGlvbnMgZm9yIGVhY2ggcm93LgogICAgbXlfdGFibGUuaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKHN0ZDo6bWFrZV90dXBsZShhLCBiLCBjLCBkKSwgZSkpOwogCiAgICAvLyAyLiBHaXZlbiB0aGUgdmFsdWVzIGZvciBDb2wxLCBDb2wyLCBDb2wzLCBDb2w0IGZpbmQgdGhlIHZhbHVlIG9mIENvbDUKICAgIGF1dG8gaXQgPSBteV90YWJsZS5maW5kKHN0ZDo6bWFrZV90dXBsZShhLCBiLCBjLCBkKSk7CiAgICBzdGQ6OmNvdXQgPDwgaXQtPnNlY29uZDsgLy8gcHJpbnRzIGUKIAogICAgLy8gMy4gR2l2ZW4gQ29sMSwgQ29sMiwgQ09sMywgQ29sNCB1cGRhdGUgQ29sNQogICAgaXQtPnNlY29uZCA9IDY7IC8vIGFzc2lnbiBzb21lIG90aGVyIHZhbHVlCn0=