Я видел пример кода, подобный следующему:
std::string s = "Hello World!";
std::map<char, std::size_t> h;
for (std::string::const_iterator i=s.cbegin(); i!=s.cend(); ++i)
{
++h[*i];
}
assert(h['l'] == 3);
Кажется, это основано на том, что тип значения обнуляется при первом появлении каждой буквы.Гарантируется ли это даже при использовании чего-то вроде std::size_t
, у которого нет конструктора по умолчанию, который обнуляет его?