Объектно-ориентированное программирование на языке С++

Содержание

Слайд 2

Список

Список - это контейнер с двунаправленным последовательным доступом к его элементам
#include
list

Список Список - это контейнер с двунаправленным последовательным доступом к его элементам
< тип > «имя списка»
list < тип > :: iterator «имя итератора»

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Item_0

Item_1

Item_2

Слайд 3

Некоторые методы списка

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Некоторые методы списка МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Слайд 4

Пример использования списка

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

#include
#include

Пример использования списка МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники #include #include

using namespace std;
int main()
{
list < char > lst; // создание пустого списка
int i;
for ( i = 0; i < 10; i++ ) lst.push_back ( 'A' + i );
cout << "Размер = " << lst.size () << endl;
list < char > :: iterator p;
cout << "Содержимое: ";
while ( ! lst.empty ( ) ) {
p = lst.begin ( );
cout << *p;
lst.pop_front ( );
}
return 0;
}
Размер =10
Содержимое: ABCDEFGHIJ

Слайд 5

Ассоциативный список

Ассоциативный список - контейнер, в котором уникальным ключам соответствуют определенные значения
#include

Ассоциативный список Ассоциативный список - контейнер, в котором уникальным ключам соответствуют определенные

map < тип key, тип val > «имя ассоциативного списка»
map < тип key, тип val > :: iterator «имя итератора»

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Слайд 6

Некоторые методы ассоциативного списка

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Некоторые методы ассоциативного списка МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Слайд 7

Пример использования ассоциативного списка

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

#include
#include

Пример использования ассоциативного списка МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники #include

using namespace std;
int main ( ) {
map < char, int > m;
int i;
  // размещение пар в ассоциативном списке
for ( i=0; i<10; i++ ) {
m.insert ( pair < char, int > ( 'A' + i, i ) );
}
  char ch;
cout << "Введите ключ: ";
cin >> ch;
map < char, int > :: iterator p;
  р = m.find ( ch ); // поиск значения по заданному ключу
if ( p != m.end ( ) )
cout << p -> second;
else
cout << "Такого ключа в ассоциативном списке нет\п";
return 0;
}

Слайд 8

Алгоритмы

Алгоритмы обрабатывают данные содержащие в контейнерах
#include

МИРЭА, Институт Информационных технологий, кафедра Вычислительной

Алгоритмы Алгоритмы обрабатывают данные содержащие в контейнерах #include МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники
техники

Слайд 9

Алгоритмы

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Алгоритмы МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

Слайд 10

Пример использования алгоритма

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

// Демонстрация алгоритмов

Пример использования алгоритма МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники // Демонстрация
count и count_if
#include
#include
#include
using namespace std;
/* это унарный предикат, который определяет, является ли значение четным */
bool even ( int x ) { return ! ( х % 2 ); }
int main ( ) {
vector < int > v;
int i;
for ( i=0; i<20; i++ ) {
if ( i % 2 ) v.push_back ( 1 );
else v.push_back ( 2*i );
}
cout << "Последовательность: ";
for ( i=0; i < v.size (); i++ ) cout << v[i] << " ";
cout << endl;

Слайд 11

Пример использования алгоритма

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

int n;

Пример использования алгоритма МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники int n;

n = count ( v.begin (), v.end (), 1 );
cout << n << " элементов равно 1\п";
n = count_if ( v.begin (), v.end (), even );
// int count_if ( vector ::iterator , vector ::iterator , bool (*p)( )) ;
cout << n << " четных элементов \n";
return 0 ;
}
После выполнения программы на экране появится следующее:
Последовательность: 0 1 2 1 4 1 8 1 12 1 16 1 20 1 24 1 28 1 32 1 36 1
10 элементов равно 1
10 четных элементов

Слайд 12

Пример использования алгоритма

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

#include
#include
#include

Пример использования алгоритма МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники #include #include

using namespace std;
int main(){
vector < int > v;
int i;
for ( i=0; i<20; i++ )
v.push_back ( rand()%20 );
cout << "Последовательность: ";
for ( i=0; i < v.size (); i++ )
cout << v[i] << " ";
cout << endl;

Слайд 13

Пример использования алгоритма

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

sort (v.begin()+5,v.end()-5);

Пример использования алгоритма МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники sort (v.begin()+5,v.end()-5);
cout << "Первая сортировка: ";
for ( i=0; i < v.size (); i++ ) cout << v[i] << " ";
cout << endl;
sort (v.begin(),v.end());
cout << "Вторая сортировка: ";
for ( i=0; i < v.size (); i++ ) cout << v[i] << " ";
cout << endl;
return 0;
}//int main()
После выполнения программы на экране появится следующее:
Последовательность: 1 7 14 0 9 4 18 18 2 4 5 5 1 7 1 11 15 2 7 16
Первая сортировка: 1 7 14 0 9 1 1 2 4 4 5 5 7 18 18 11 15 2 7 16
Вторая сортировка: 0 1 1 1 2 2 4 4 5 5 7 7 7 9 11 14 15 16 18 18

Слайд 14

Сортировка произвольного класса

МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники

#include
#include
#include
using

Сортировка произвольного класса МИРЭА, Институт Информационных технологий, кафедра Вычислительной техники #include #include
namespace std;
class vect3{
public:
double x,y,z;
vect3(double xx=0,double yy=0,double zz=0){x=xx;y=yy;z=zz;}
void show();
double mod();
};
void vect3::show(){
cout<<"{"<}
double vect3::mod(){
return sqrt (x*x + y*y + z*z);
}
bool comp(vect3 A, vect3 B){
if(A.mod() else return false;
}