> -- Дмитрий Дагаев писал(а):
> Теперь можно сказать и сравнении с stl в части вставки в красно-черное дерево.В c++ код можно посмотреть в MyBench.zip/map.cpp.

Вообще говоря, результат замеров имеет мало смысла, если не проведён анализ *во что упирается* та или иная реализация. Сейчас у вас приведены какие-то цифры, но, при беглом просмотре кода складывается ощущение, что C++ и SCL программы делали совсем разные действия.

Например:

1) В C++ коде вы создаёте string, потом вызываете srnd.resize(256);
А по факту, у строки используются первые 4-5 символов.
Строки C++ могут содержать нулевые символы, поэтому операция сравнения строк вынуждена просматривать строку целиком.

Судя по BlackBox коду, сравнение в BlackBox останавливается на этом самом нулевом символе:
## Код:
```
(* ========== Short String Key implementation ========== *)
   PROCEDURE SStringCompare (s1, s2: SString256KeyUPtr): INTEGER;
      VAR j, rc: INTEGER;
   BEGIN
      j := -1;
      REPEAT
         INC(j);
         rc := ORD(s1.name[j]) - ORD(s2.name[j]);
      UNTIL (rc # 0) OR (s1.name[j] = 0X);
      RETURN rc
   END SStringCompare;
```


2) По-моему, сами ключи для теста генерируются разным образом.
В BlackBox так RandString(SHORT(ENTIER(32767*Tb.Uniform())), el.ri.name);, а в C++ так: RandString(rand(), w);
Насколько я понимаю, BlackBox вызывается с SHORT, а C++ с аргументом int.
Значит, в C++ на само построение ключей банально больше времени нужно, и сам поиск по дереву дольше, т.к. в дереве больше ключей

Поправите?
Новый замер сделаете?