Сложность std::set::find()
, являющаяся O(log(n))
, просто означает, что будет порядка log(n)
сравнений объектов, хранящихся в set
.
Если сложность сравнения 2 элементов в наборе равна O(k)
, то фактическая сложность будет O(log(n)∗k)
.
это может произойти, например, в случае набора строк (k будет длиной самой длинной строки), так как сравнение 2 строк может подразумевать сравнение большинства (или всех) их символов (если они начинаются с того же префикса или являются равны)
Документация говорит то же самое:
Сложность
Логарифмический размер.