home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Sessions / STL / Slides / STL1.cp < prev    next >
Encoding:
Text File  |  1998-06-07  |  988 b   |  42 lines  |  [TEXT/CWIE]

  1. #include <iostream>
  2. #include <cstddef>
  3.  
  4. using namespace std;
  5.  
  6. int    ANSICqsortCompare(const void *el1, const void *el2);
  7. int    ANSICqsortCompare(const void *el1, const void *el2)
  8. {
  9.     return (int)(*(long *)el1 - *(long *)el2);
  10. }
  11.  
  12. int main()
  13. {
  14.     cout << "STL sort sample!\n\n";            // setting up arrays
  15.     const    size_t    aSize = 10240;
  16.     long    *qArray = new long[aSize];
  17.     long    *stlArray = new long[aSize];
  18.     assert(qArray && stlArray);
  19.  
  20.     srand(time(NULL));                        // randomize
  21.     for (int i = 0; i < aSize; ++i)
  22.     {
  23.         qArray[i] = stlArray[i] = rand();
  24.     }
  25.  
  26.     long    qsortTickStart = clock();        // ANSI sort
  27.     qsort(qArray, aSize, sizeof(long), ANSICqsortCompare);
  28.     long    qTix = clock() - qsortTickStart;
  29.  
  30.     long    stlTickStart = clock();            // STL sort
  31.     sort(stlArray, &stlArray[aSize]);
  32.     long    stlTix = clock() - stlTickStart;
  33.  
  34.     for (int i = 0; i < aSize; ++i)            // verify
  35.     {
  36.         assert(qArray[i] == stlArray[i]);
  37.     }
  38.     cout << "qsort() " << qTix << "\nSTL sort " << stlTix << "\n";
  39.     delete [] qArray; delete [] stlArray;
  40. }
  41.  
  42.