#include <iostream>
#include <map>
using namespace std;
class A
{
public:
void SetData(std::string key, int value)
{
if(m_data.find(key) != m_data.end()) m_data.at(key) = value;
else m_data.insert(std::make_pair(key,value));
}
int GetData(std::string key)
{
if(m_data.find(key) != m_data.end()) return m_data.at(key);
return 0;
}
void ResetData()
{
for(auto item : m_data)
item.second = 0;
}
void ResetData2()
{
for(auto it=m_data.begin(); it!=m_data.end(); it++)
(*it).second = 0;
}
private:
std::map<std::string, int> m_data;
};
int main()
{
A a;
a.SetData("KEY1", 10);
std::cout << "Key1: " << a.GetData("KEY1") << std::endl;
a.ResetData();
std::cout << "Key1: " << a.GetData("KEY1") << std::endl;
a.ResetData2();
std::cout << "Key1: " << a.GetData("KEY1") << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEEKewpwdWJsaWM6Cgl2b2lkIFNldERhdGEoc3RkOjpzdHJpbmcga2V5LCBpbnQgdmFsdWUpIAoJeyAKCQlpZihtX2RhdGEuZmluZChrZXkpICE9IG1fZGF0YS5lbmQoKSkgbV9kYXRhLmF0KGtleSkgPSB2YWx1ZTsKCQllbHNlIG1fZGF0YS5pbnNlcnQoc3RkOjptYWtlX3BhaXIoa2V5LHZhbHVlKSk7Cgl9CglpbnQgR2V0RGF0YShzdGQ6OnN0cmluZyBrZXkpCgl7CgkJaWYobV9kYXRhLmZpbmQoa2V5KSAhPSBtX2RhdGEuZW5kKCkpIHJldHVybiBtX2RhdGEuYXQoa2V5KTsKCQlyZXR1cm4gMDsKCX0KCXZvaWQgUmVzZXREYXRhKCkKCXsKCQlmb3IoYXV0byBpdGVtIDogbV9kYXRhKQoJCQlpdGVtLnNlY29uZCA9IDA7Cgl9Cgl2b2lkIFJlc2V0RGF0YTIoKQoJewoJCWZvcihhdXRvIGl0PW1fZGF0YS5iZWdpbigpOyBpdCE9bV9kYXRhLmVuZCgpOyBpdCsrKQoJCQkoKml0KS5zZWNvbmQgPSAwOwoJfQoJCQpwcml2YXRlOgoJc3RkOjptYXA8c3RkOjpzdHJpbmcsIGludD4gbV9kYXRhOwp9OwoKaW50IG1haW4oKSAKewoJQSBhOwoJYS5TZXREYXRhKCJLRVkxIiwgMTApOwoJc3RkOjpjb3V0IDw8ICJLZXkxOiAiIDw8IGEuR2V0RGF0YSgiS0VZMSIpIDw8IHN0ZDo6ZW5kbDsKCWEuUmVzZXREYXRhKCk7CglzdGQ6OmNvdXQgPDwgIktleTE6ICIgPDwgYS5HZXREYXRhKCJLRVkxIikgPDwgc3RkOjplbmRsOwoJYS5SZXNldERhdGEyKCk7CglzdGQ6OmNvdXQgPDwgIktleTE6ICIgPDwgYS5HZXREYXRhKCJLRVkxIikgPDwgc3RkOjplbmRsOwoJCglyZXR1cm4gMDsKfQ==