Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.61 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdexcept>
  3. #include <utility>
  4. #include <vector>
  5. #include <map>
  6.  
  7. using namespace std;
  8.  
  9. template <typename Key, typename Value>
  10. Value& GetRefStrict(const map<Key, Value>& m, const Key& k) {
  11.     if (m.find(k) == m.end()) {
  12.         throw runtime_error("Go away!");
  13.     }
  14.     else {
  15.         return &((*m.find(k)).second);  // ЭТО ФИГНЯ! Но как бросить ссылку на объект по ключу??
  16.     }
  17. }
  18.  
  19. int main()
  20. {
  21.     map<int, string> m = { {0, "value"} };
  22.     string& item = GetRefStrict(m, 0);
  23.     item = "newvalue";
  24.     cout << m[0] << endl; // выведет newvalue
  25.     return 0;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement