станд.:: карта вставляет или станд.:: карта находит?

В Java вы можете ожидать, что

byte b = 0;
b++;

будет равен

byte b = 0;
b = b + 1;

Но это не так. Фактически вы получаете ошибку компилятора , так как результат сложения имеет тип int и поэтому не может быть назначен байтовой переменной b. При использовании составного оператора ++ Компилятор автоматически вставляет приведение здесь . Так

b++;

становится

b = (byte) b + 1;
85
задан Superpolock 18 September 2008 в 21:14
поделиться

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

для любого элемента, которого еще нет на карте, так как ему придется искать дважды. Один раз, чтобы проверить, есть ли оно, и снова найти место, куда можно поставить обновку.

3
ответ дан 24 November 2019 в 08:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: