Язык программирования C++ от Страуструпа

       

Чтобы правильно сортировать вектор из


Чтобы правильно сортировать вектор из элементов char* мы можем просто задать самостоятельно подходящее определение функции

sort(Vector<char*>&):

void sort(Vector<char*>& v)

{

  unsigned n = v.size();

     for (int i=0; i<n-1; i++)

       for ( int j=n-1; i<j; j--)

          if (strcmp(v[j],v[j-1])<0) {

            // меняем местами v[j] и v[j-1]

            char* temp = v[j];

            v[j] = v[j-1];

            v[j-1] = temp;

          }

}

Поскольку для векторов из указателей на строки пользователь дал свое особое определение функции sort(), оно и будет использоваться, а создавать для нее определение по шаблону с параметром типа Vector<char*>& не нужно. Возможность дать для особо важных или "необычных" типов свое определение шаблонной функции дает ценное качество гибкости в программировании и может быть важным средством доведения программы до оптимальных характеристик.


Содержание раздела