Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
27.02.2014
Размер:
67.58 Кб
Скачать

1.

2. Класс Stack реализован в виде кругового буфера.

Если значение свойства Count меньше значения емкости, метод Push является операцией O(1). Если для размещения нового элемента требуется увеличить емкость, метод Push становится операцией O(n), где n определяет значение свойства Count. Метод Pop является операцией O(1).

Класс Stack допускает в качестве действительного значение пустая ссылка (Nothing в Visual Basic), а также допускает наличие повторяющихся элементов.

using <mscorlib.dll>

#using <system.dll>

using namespace System;

using namespace System::Collections;

public __gc class SamplesStack {

public:

static void PrintValues(IEnumerable __gc *myCollection) {

System::Collections::IEnumerator __gc *myEnumerator = myCollection->GetEnumerator();

while (myEnumerator->MoveNext())

Console::Write(S"\t{0}", myEnumerator->Current);

Console::WriteLine();

}

};

int main() {

// Creates and initializes a new Stack.

Stack __gc *myStack = new Stack();

myStack->Push(S"Hello");

myStack->Push(S"World");

myStack->Push(S"!");

// Displays the properties and values of the Stack.

Console::WriteLine(S"myStack");

Console::WriteLine(S"\tCount: {0}", __box(myStack->Count));

Console::Write(S"\tValues:");

SamplesStack::PrintValues(myStack);

}

/*

This code produces the following output.

myStack

Count: 3

Values: ! World Hello

*/

3. Как правило, перед тем как пытаться получить доступ к файлу, следует про-

верить результат выполнения функции ореп().

Проверить правильность открытия файла можно также с помощью функции

is_open(), являющейся членом классов ifstream, ofstream и fstream. Ниже по-

казан прототип этой функции:

bool is open{);

278 _ __ Самдучитель_С+ +

Функция возвращает истину, если поток удалось связать с открытым фай-

лом, в противном случае функция возвращает ложь. Например, в следую-

щем фрагменте проверяется, открыт ли файл, связанный с потоком mystream:

iff !mystream.is_open() ) {

cout ≪ "Файл не открытЛп";

Хотя использовать функцию openQ для открытия файла в целом правильно,

часто вы этого делать не будете, поскольку у классов ifstream, ofstream и

fstream есть конструкторы, которые открывают файл автоматически. Конст-

рукторы имеют те же параметры, в том числе и задаваемые по умолчанию,

что и функция орел(). Поэтому чаще вы будете пользоваться таким спосо-

бом открытия файла:

ifstream mystream ("rnyfile") ; // открытие файла для ввода

Соседние файлы в папке Ответы на билеты