У меня есть базовый запрос в картах C++,C++ карты добавляет новый элемент
map<char,string> mymap;
mymap['a']="an element";
mymap['b']="another element";
mymap['c']=mymap['b'];
cout << "mymap['a'] is " << mymap['a'] << endl;
cout << "mymap['b'] is " << mymap['b'] << endl;
cout << "mymap['c'] is " << mymap['c'] << endl;
cout << "mymap['d'] is " << mymap['d'] << endl;
при попытке получить доступ к MyMap [ «d»], я получаю значение по умолчанию, так как оператор вставляет новый элемент в с этим ключом и инициализируется значением по умолчанию, хотя он доступен только для получения его значения. В следующий раз, когда я использую итератор, я мог видеть нулевое значение для ключа 'd'. Есть ли способ ограничить отображение карты значениями по умолчанию.
Что вы * * ожидать произойдет, когда вы пишете 'MyMap [ 'd']'? –
Если вы прочли этот код со страницы http://www.cplusplus.com/reference/stl/map/operator%5B%5D/, было бы вежливо упомянуть об этом.Тем более, что эта страница представляет и отвечает на ваш вопрос. " Обратите внимание, как последний доступ (к элементу 'd') вставляет новый элемент на карте с этим ключом и инициализируется значением по умолчанию (пустая строка), даже если к нему обращаются только для получения его значения. Карта функций-членов: : find не производит этого эффекта ». –