Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdexcept>
- #include <utility>
- #include <vector>
- #include <map>
- using namespace std;
- template <typename Key, typename Value>
- Value& GetRefStrict(const map<Key, Value>& m, const Key& k) {
- if (m.find(k) == m.end()) {
- throw runtime_error("Go away!");
- }
- else {
- return &((*m.find(k)).second); // ЭТО ФИГНЯ! Но как бросить ссылку на объект по ключу??
- }
- }
- int main()
- {
- map<int, string> m = { {0, "value"} };
- string& item = GetRefStrict(m, 0);
- item = "newvalue";
- cout << m[0] << endl; // выведет newvalue
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement