Реферат Курсовая Конспект
Использование функции сортировки STL - раздел Образование, Unit 4. Sorting, Searching, and Complexity · 4.1 Sorting and Searching · 4.2 Complexity Assessments · Multiple-Choice Quiz Стандартная Библиотека Шаблонов Включает Функции, Которые Программисты Могут ...
|
Стандартная библиотека шаблонов включает функции, которые программисты могут использовать, чтобы сортировать массивы контейнеров. Одна из этих функций sort функция. Функция sort выполняет быстрый sort (quicksort) в контейнере.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: | #include <iostream>#include <cstdlib>#include <ctime>#include <vector>#include <algorithm>#include <iterator> using namespace std; int random_less_than_50(void) { return (rand() % 50);} int main(int argc, char* argv[]) { // seed the random number generator srand( time(0) ); // create a vector with ten random elements (all less than 50) vector<int> v; back_insert_iterator< vector<int> > back_itr(v); generate_n(back_itr, 10, random_less_than_50); // display its contents ostream_iterator<int> out(cout, " "); copy(v.begin(), v.end(), out); // sort the vector sort(v.begin(), v.end()); // display its contents, sorted cout << endl; copy(v.begin(), v.end(), out); return EXIT_SUCCESS;} |
Listing 2 Using the sort algorithm |
Листинг 2 использует несколько других функций то объяснение ордера. Во-первых, функция STL generate_n используется в Перечислении 2, чтобы заполнить вектор с десятью случайными числами. Эта функция берет в качестве параметров вывод iterator, много элементов, чтобы генерировать, и функция, чтобы использовать, чтобы генерировать каждый элемент. Сгенерированные элементы помещаются в вывод iterator определенный в первом параметре. В этом случае, вывод iterator является a back_insert_iterator для вектора v. Таким образом, все элементы, сгенерированные функцией в третьем параметре, помещаются в конце вектора v. Функция, определенная в третьем параметре, является оберткой для C-библиотечной-функции рэнд. Функция рэнд возвращает случайное число из генератора случайных чисел времени выполнения. Это случайное число может быть довольно большим, таким образом, функция обертки используется, чтобы сократить количество, возвращенное к меньшему диапазону значений.
вид функция может работать только на контейнерах, которые обеспечивают произвольный доступ iterators. Контейнеры такой как вектор, двухсторонняя очередь, и строка все обеспечивают произвольный доступ iterators. Начиная с STL список контейнер не обеспечивает произвольный доступ iterators общего назначения вид функция на a список возразите результатам в ошибке времени компиляции. Так как связанные списки часто должны сортироваться, список у контейнера есть специальное предложение вид функция членства. Перечисление 3 демонстрирует свое использование.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: | #include <iostream>#include <cstdlib>#include <ctime>#include <list>#include <algorithm>#include <iterator> using namespace std; int random_less_than_50(void) { return (rand() % 50);} int main(int argc, char* argv[]) { // seed the random number generator srand( time(0) ); // create a list with ten random elements // (all less than 50) list<int> ls; back_insert_iterator< list<int> > back_itr(ls); generate_n(back_itr, 10, random_less_than_50); // display its contents ostream_iterator<int> out(cout, " "); copy(ls.begin(), ls.end(), out); // sort the list // The following can NOT be used since lists // do not provide random access iterators // sort(ls.begin(), ls.end()); ls.sort(); // display its contents again cout << endl; copy(ls.begin(), ls.end(), out); return EXIT_SUCCESS;} |
Listing 3 Sorting a list |
В дополнение к сортировке STL обеспечивает возможность для перестановка содержание контейнера. Перестановка, противоположность сортировки, является случайным расположением данных в наборе. Следующее перечисление демонстрирует функцию STL random_shuffle.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: | // create a deque with 10 elementsdeque<int> d;for (int i = 1; i <= 10; i++) { d.push_back(i);} ostream_iterator<int> out(cout, " "); for (int j = 1; j <= 5; j++) { // display its contents copy(d.begin(), d.end(), out); cout << endl; random_shuffle(d.begin(), d.end()); copy(d.begin(), d.end(), out); cout << endl << endl; sort(d.begin(), d.end());} |
Listing 4 Shuffling a container |
– Конец работы –
Эта тема принадлежит разделу:
На сайте allrefs.net читайте: "Unit 4. Sorting, Searching, and Complexity · 4.1 Sorting and Searching · 4.2 Complexity Assessments · Multiple-Choice Quiz"
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Использование функции сортировки STL
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов