Программирование >>  Дополнительные возможности наследования 

1 ... 200 201 202 [ 203 ] 204 205 206 ... 265


в векторе из библиотеки STL не задается максимальное число элементов, так как это решение лучше переложить на плечи создателей компиляторов. Векторный класс предоставляет функцию-член max size(), которая способна сообшить это магическое число, определенное в вашем компиляторе.

В листинге 19.8 демонстрируется использование векторного класса. Вы увидите, что для упрошения обработки строк в этом листинге используется стандартный класс string. Для получения более подробной информации о классе string обратитесь к документации, прилагаемой к вашему компилятору.

Листинг 19.8. Создание вектора о оОесоечение gocmgna к его зАвментам

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

flinclude <iostream> flinclude <string> flinclude <vector> using namespace std;

class Student {

public:

StudentO;

Student(const string& name, const int age);

Student(const Student& rhs);

StudentO;

void SetName(const string& name); string GetNameO const;

void SetAge(const int age); int GetAgeO const;

Student& operator=(const Student& rhs);

private:

string itsName; int itsAge;

Student::Student()

: itsNameCNew Student ), itsAge(16) { }

Student::Student(const string& name, const int age) : itsName(name), itsAge(age) { }

Student::Student(const Student& rhs)

: itsName(rhs.GetNameO), itsAge( rhs. GetAge())

Student: : StudentO { }



41: 42: 43: 44: 45: 46: 47: 48; 49; 50; 51: 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 52; 63: 64: 66; 66; 67; 68; 69: 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86: 87; 88: 89; 90;

void Student;;SetName(const stringi name) itsName = name;

string Student;;GetName() const return itsName;

void Student:;SetAge(const int age) ItsAge = age;

nt Student;;GetAgeO const return itsAge;

Students. Student; ;operator=(oonst Students rhs)

ItsName = rhs.GetNameO; ItsAge = rhs, GetAgeO; return this;

ostreami operator (ostream& os, const Students rhs)

OS rhs.GetNameO is rhs,GetAgeO years old ; return os;

emplate<class T>

void ShowVector(const vector<T>& v); Отображает свойства вектора

ypedef vector<Student> nt mainO

SchoolClass;

Student Harry; Student Sally( Sally , 15); Student Bill( Bill , 17); Student Peter( Peter , 16);

SchoolClass EmptyClass; cout EmptyClass:\ n ; ShowVector(EmptyClass);

SchoolClass GrowingClass(3);



cout GrowingClass(3):\ n ; ShowVectorCGrowingClass);

GrowingClass[0] = Harry; GrowingClass[1] = Sally; GrowingClass[2] = BUI;

cout << GrowingClass(3) after assigning students;\ n Show\/ector(GrowingClass);

GrowingClass.push back(Peter);

cout GrowingClass() after added 4th student:\ n ; ShowVector(GrowingClass);

GrowingClass[0].Set Name( Harry ); GrowingClass[0].SetAge(18); cout GrowingClassO after Set\n; ; ShowVector(GrowingClass);

return 0;

Отображает свойства вектора

template<class Т>

void Show\/ector(const vector<T>& v) {

cout max size() = v.max size();

cout \ tsizeO = v,slze();

cout \ tcapacityO = v,capacity();

cout \ t (v.emptyO? empty : not empty );

cout << \ n ;

for (int 1=0; i < v.size(): ++i) cout v[i] \ n ;

cout << endl;

EmptyClass:

max size() = 214748364 slze() = 0 capacltyO = 0 empty GrowingClass(3);

max size() = 214748364 slze() = 3 capacltyO = 3 not empty

New Student is 16 years old

New Student is 16 years old

New Student is 16 years old



1 ... 200 201 202 [ 203 ] 204 205 206 ... 265

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика