The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

sort (3)
  • sort (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • sort (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • sort (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • sort (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • sort (1) ( POSIX man: Команды и прикладные программы пользовательского уровня )
  • >> sort (3) ( Solaris man: Библиотечные вызовы )
  • sort (3) ( Linux man: Библиотечные вызовы )
  • Ключ sort обнаружен в базе ключевых слов.
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         sort
    
          - A templatized algorithm for sorting collections of  enti-
         ties.
    
    
    
    SYNOPSIS
         #include <algorithm>
         template <class RandomAccessIterator>
         void sort (RandomAccessIterator first,
                   RandomAccessIterator last);
         template <class RandomAccessIterator, class Compare>
         void sort (RandomAccessIterator first,
                   RandomAccessIterator last, Compare comp);
    
    
    
    DESCRIPTION
         The sort algorithm sorts the elements in the  range  [first,
         last)  using  either  the less than (<) operator or the com-
         parison operator comp. If the worst case behavior is  impor-
         tant, stable_sort_or partial_sort should be used.
    
    
    
    COMPLEXITY
         On average,_sort performs approximately N(logN) comparisons,
         where N equals last -  first.
    
    
    
    EXAMPLE
         //
         // sort.cpp
         //
         #include <vector>
         #include <algorithm>
         #include <functional>
         #include <iostream>
         using namespace std;
    
         struct associate
          {
         int num;
         char chr;
    
         associate(int n, char c) : num(n), chr(c) {};
         associate() : num(0), chr(`\0'){};
          };
    
         bool operator<(const associate &x, const associate &y)
          {
         return x.num < y.num;
          }
    
    
         ostream& operator<<(ostream &s, const associate &x)
          {
         return s << "<" << x.num << ";" << x.chr << ">";
          }
    
         int main ()
          {
         vector<associate>::iterator i, j, k;
         associate arr[20] =
           {associate(-4, ` `), associate(16, ` `),
           associate(17, ` `), associate(-3, `s'),
           associate(14, ` `), associate(-6, ` `),
           associate(-1, ` `), associate(-3, `t'),
           associate(23, ` `), associate(-3, `a'),
           associate(-2, ` `), associate(-7, ` `),
           associate(-3, `b'), associate(-8, ` `),
           associate(11, ` `), associate(-3, `l'),
           associate(15, ` `), associate(-5, ` `),
           associate(-3, `e'), associate(15, ` `)};
    
         // Set up vectors
         vector<associate> v(arr, arr+20), v1((size_t)20),
                          v2((size_t)20);
         // Copy original vector to vectors #1 and #2
         copy(v.begin(), v.end(), v1.begin());
         copy(v.begin(), v.end(), v2.begin());
    
         // Sort vector #1
         sort(v1.begin(), v1.end());
    
         // Stable sort vector #2
         stable_sort(v2.begin(), v2.end());
    
         // Display the results
         cout << "Original    sort      stable_sort" << endl;
         for(i = v.begin(), j = v1.begin(), k = v2.begin();
          i != v.end(); i++, j++, k++)
         cout << *i << "     " << *j << "     " << *k << endl;
         return 0;
          }
    
         Program Output
    
    
    
         Original    sort      stable_sort
         <-4; >     <-8; >     <-8; >
         <16; >     <-7; >     <-7; >
         <17; >     <-6; >     <-6; >
         <-3;s>     <-5; >     <-5; >
         <14; >     <-4; >     <-4; >
         <-6; >     <-3;e>     <-3;s>
         <-1; >     <-3;s>     <-3;t>
         <-3;t>     <-3;l>     <-3;a>
         <23; >     <-3;t>     <-3;b>
         <-3;a>     <-3;b>     <-3;l>
         <-2; >     <-3;a>     <-3;e>
         <-7; >     <-2; >     <-2; >
         <-3;b>     <-1; >     <-1; >
         <-8; >     <11; >     <11; >
         <11; >     <14; >     <14; >
         <-3;l>     <15; >     <15; >
         <15; >     <15; >     <15; >
         <-5; >     <16; >     <16; >
         <-3;e>     <17; >     <17; >
         <15; >     <23; >     <23; >
    
    
    
    WARNINGS
         If your compiler does not support default  template  parame-
         ters,  then you always need to supply the Allocator template
         argument. For instance, you need to write:
    
         vector<int, allocator<int> >
    
         instead of:
    
         vector<int>
    
         If your compiler does not support namespaces,  then  you  do
         not need the using declaration for std.
    
    
    
    SEE ALSO
         stable_sort, partial_sort, partial_sort_copy
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру