Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тех прог.doc
Скачиваний:
13
Добавлен:
14.11.2019
Размер:
3.59 Mб
Скачать

Программа 69. Использование шаблона векторов

Термин вектор применяется в STL к динамическим массивам. Шаблон класса векторов vector реализует оператор [] доступа к элементу и оператор присваивания. Вектора из элементов конкретного типа создаются инструкциями вида:

vector <int> Numb(N0);

где Numb – имя создаваемого вектора, N0 – число элементов вектора.

В программе создается вектор с числом элементов N0, затем его размер изменяется до N. Вектор заполняется случайными числами, копируется в другой вектор, который затем сортируется.

// Файл STLVctr.cpp

#include <iostream>

#include <vector>

#include <algorithm>

#include <conio.h>

using namespace std;

const int Max = 1000; // Максимальное значение элемента массива

const int N0 = 10; // Первоначальный размер массива

void main()

{

vector <int> Numb(N0); // Numb - массив из N0 элементов типа int

int N; // Количество чисел в массиве

cout << "Input the count of numbers "; // Приглашение ввести размер

cin >> N; // Ввод нового размера массива

// size() возвращает текущий размер

if (Numb.size() != N) // Если текущий размер не равен новому,

Numb.resize(N); // устанавливаем новый размер

// resize(N) изменяет размер массива на новый, равный N

cout << "\nThe Source array\n"; // Исходный массив

for(int i = 0; i < Numb.size(); i++) // Заполнение массива случайными

cout << (Numb[i] = rand() % Max) << ' '; // числами и вывод

vector <int> NumbSort(N); // Еще один массив

NumbSort = Numb; // Новому массиву присваиваем значение старого

sort(NumbSort.begin(), NumbSort.end()); // Сортировка массива

// begin() возвращает итератор на первый элемент,

// end() - на последний

cout << "\n The Sorted array\n"; // Отсортированный массив

for(int i = 0; i < NumbSort.size(); i++) // Вывод отсортированного

cout << NumbSort[i] << ' '; // массива

getch();

}

Далее приведен диалог с программой.

Input the count of numbers 12

The Source array

346 130 982 90 656 117 595 415 948 126 4 558

The Sorted array

4 90 117 126 130 346 415 558 595 656 948 982

Таким образом, STL позволяет легко делать ряд полезных вещей, которые недоступны для базовых типов данных, например, присваивание массивов, их эффективную сортировку и т.п.

Литература

5.  Керниган Б., Ритчи Д. Язык программирования Си.– СПб.: «Невский Диалект», 2001.– 352 с.

6.  Страуструп Б. Язык программирования C++. – СПб.; М.: «Невский Диалект» – «Издательство БИНОМ», 1999.– 991 с.

7.  Шилдт Г. Справочник программиста по C/C++.– М.: Издательский дом «Вильямс», 2000.– 448 с.

8.  Павловская Т.А. C/C++. Программирование на языке высокого уровня.– СПб.: Питер, 2003.– 461 с.

9.  Подбельский В.В. Язык Си++.– М.: Финансы и статистика, 1996.– 560 с.

10.  Прата С. Язык программирования C++. Лекции и упражнения.– Киев: Издательство «ДиаСофт», 2001.–656 с.

11.  Уинер Р. Язык Турбо Си. – М.: Мир, 1991. – 380 с.

12.  Тондо К. Гимпел С. Язык Си. Книга ответов.– М.: Финансы и статистика, 1994. – 160 с.

13.  Тарасов В.Л. Упражнения по языку Си.– Н. Новгород: Изд-во ННГУ, 1996. – 178 с.

14.  Культин Н.Б. C/C++ в задачах и примерах.–СПб.: БХВ-Петербург, 2001.–288 с.

15.  Лафоре Р. Объектно-ориентированное программирование в C++.–СПб.: Питер, 2003.– 928 с.

16.  Архангельский А.Я. Программирование в C++Builder 5.– М.: ЗАО «Издательство БИНОМ», 2000– 1152 с.