В Java вы можете ожидать, что
byte b = 0;
b++;
будет равен
byte b = 0;
b = b + 1;
Но это не так. Фактически вы получаете ошибку компилятора , так как результат сложения имеет тип int и поэтому не может быть назначен байтовой переменной b. При использовании составного оператора ++
Компилятор автоматически вставляет приведение здесь . Так
b++;
становится
b = (byte) b + 1;
Я потерялся в верхнем ответе.
Find возвращает map.end (), если ничего не находит, что означает, что если вы добавляете что-то новое, то
iter = map.find();
if (iter == map.end()) {
map.insert(..) or map[key] = value
} else {
// do nothing. You said you did not want to effect existing stuff.
}
дважды так же медленно, как
map.insert
для любого элемента, которого еще нет на карте, так как ему придется искать дважды. Один раз, чтобы проверить, есть ли оно, и снова найти место, куда можно поставить обновку.