Разделы презентаций


C++

Содержание

Класс string#include using std::string;string s1; // Инициализация пустой строкойstring s2(s1); // Инициализация копией строки s1string s3("value"); // Инициализация копией литералаstring s4(n,'c'); // n символов

Слайды и текст этой презентации

Слайд 1C++
Некоторые стандартные шаблоны классов

C++Некоторые стандартные шаблоны классов

Слайд 2Класс string
#include
using std::string;

string s1; //

Инициализация пустой строкой
string s2(s1); // Инициализация копией строки

s1
string s3("value"); // Инициализация копией литерала
string s4(n,'c'); // n символов ‘c’

заголовки без .h содержат описания пространств имен и другую специфическую информацию в стиле С++

Класс string#include using std::string;string s1;     // Инициализация пустой строкойstring s2(s1);   //

Слайд 3Класс string
#include "stdafx.h"

using std::cout;
using std::cin;
using std::string;
using std::endl;

int main()
{
string s;
cin >>

s;
cout


Слайд 4Класс string
int main()
{
string::size_type n;
string s;
cin >> s;
if (s.empty()) cout

"string is empty!";
else
{ n=s.size();
cout

0;
}
Класс stringint main(){	string::size_type n;	string s;	cin >> s;	if (s.empty()) cout

Слайд 5Операции со строками

Операции со строками

Слайд 6Класс string
string s1("Hello");
string s2("World!");
s=s1+", "+s2;
cout

s[s.size()-1]

непредсказуемая ошибка
Класс stringstring s1(

Слайд 7Работа с символами строки

Работа с символами строки

Слайд 8Шаблон класса vector
vector v1; // Вектор, содержащий объекты типа

T
vector v2(v1); // Вектор v2 – копия v1
vector v3(n, i);

// Вектор из n элементов со знач. i
vector v4(n); // Вектор из n элементов

Размер вектора увеличивается динамически

Шаблон класса vectorvector v1;  // Вектор, содержащий объекты типа Tvector v2(v1); // Вектор v2 – копия

Слайд 9Шаблон класса vector
#include

using std::vector;
using std::string;
using std::cout;
using std::endl;

void main()
{
vector a(100,0);
vector

c;
vector b(a);
vector s(10,"Hello!");
cout

Шаблон класса vector#include using std::vector;using std::string;using std::cout;using std::endl;void main(){	vector a(100,0);	vector c;	vector b(a);	vector s(10,

Слайд 10Операции с векторами

Операции с векторами

Слайд 11Динамическое добавление элементов
#include
using std::vector;
using std::cout;
using std::endl;

void main()
{

vector c;
cout

c.size()

<< ' ';
// c[2]=30 - так нельзя!
}
Динамическое добавление элементов#include using std::vector;using std::cout;using std::endl;void main(){	vector c;	cout

Слайд 12Итераторы
#include
using std::vector;
using std::string;
using std::cout;
using std::endl;

void main()
{

vector c(10);
for (int i=0;

i!=c.size(); i++) c[i]=i*10;

vector::iterator ic;

for (ic=c.begin(); ic!=c.end(); ic++)
cout

endl;
}
Итераторы#include using std::vector;using std::string;using std::cout;using std::endl;void main(){	vector c(10);	for (int i=0; i!=c.size(); i++) c[i]=i*10;	vector::iterator ic;	for (ic=c.begin(); ic!=c.end(); ic++)		cout

Слайд 13Шаблон класса bitset
bitset b; // Набор из n нулевых

битов
bitset b(u); // Копия значения unsigned long
bitset b(s); // Биты

из текстовой строки "10011"
bitset b(s,pos,n); // из n символов текстовой
// строки, начиная с pos.

bitset<16> b(0xFFFF);
bitset<32> d("0111110000110111“);

Шаблон класса bitsetbitset b;  // Набор из n нулевых битовbitset b(u); // Копия значения unsigned longbitset

Слайд 14Операции с наборами битов

Операции с наборами битов

Слайд 15Примеры работы с набором бит
#include
#include

using std::bitset;
using std::string;
using std::cout;
using

std::endl;

void main()
{
bitset b1(0xFFFFFFFF);
b1[10]=0;
b1.flip(1);
b1.flip();
cout

b1 << endl;
cout << b1.count() << endl;
cout << b1.to_ulong() << endl;
}
Примеры работы с набором бит#include #include using std::bitset;using std::string;using std::cout;using std::endl;void main(){ bitset b1(0xFFFFFFFF); b1[10]=0;  b1.flip(1);

Слайд 16Дополнительные стандартные классы
Контейнеры
vector – быстрый произвольный доступ
list – быстрая вставка

удаление
deque – двухсторонняя очередь
stack – стек, последним пришел, первым вышел
queue

– очередь, первым пришел, последним вышел
priority_queue – приоритетная очередь

Ассоциативные контейнеры
Тип map
Тип set
Типы multimap и multiset
Дополнительные стандартные классыКонтейнерыvector – быстрый произвольный доступlist – быстрая вставка удалениеdeque – двухсторонняя очередьstack – стек, последним

Слайд 17Приведение типов
static_cast
dynamic_cast
const_cast
reinterpret_cast
В старом стиле (два варианта)

Приведение типовstatic_castdynamic_castconst_castreinterpret_castВ старом стиле (два варианта)

Слайд 18static_cast (x)
Выполняет преобразование типов, которое компилятор может выполнить неявно, а

также которое не может выполнить неявно
void main()
{
double d =

3.14;
int n = 0;
n = static_cast (d);

void *p = &d;
double *dp = static_cast (p);
}
static_cast (x)Выполняет преобразование типов, которое компилятор может выполнить неявно, а также которое не может выполнить неявноvoid main(){

Слайд 19const_cast (x)
Преобразование констант
const char *s;
char *p =string_copy(const_cast (p));

const_cast (x)Преобразование константconst char *s;char *p =string_copy(const_cast (p));

Слайд 20reinterpret_cast (x)
Машинно-зависимая интепретация бит
char c = 'A';

unsigned short

int *w = reinterpret_cast (&c);

cout

<< endl;
reinterpret_cast (x)Машинно-зависимая интепретация бит char c = 'A'; unsigned short int *w = reinterpret_cast (&c); cout

Слайд 21Приведение типов в старом стиле
char *pc = (char *) ip;

double

d;

int n = int(d);

Приведение типов в старом стилеchar *pc = (char *) ip;double d;int n = int(d);

Слайд 22Перегрузка операторов преобразования
class SmallInt
{
public:
int val;
SmallInt(int i=0)
{
val=i;
}
operator int() {

return val; }
};
Эта функция будет использоваться и в операторах явного

преобразования типов
Перегрузка операторов преобразованияclass SmallInt{public:	int val; 	SmallInt(int i=0) 	{		val=i;	}	operator int() { return val; }};Эта функция будет использоваться и

Слайд 23Преобразование классов
class Aaa
{ public: int a;
};

class Bbb : public Aaa
{

public: int b;
};

void main()
{ Aaa* a = new Aaa();

Bbb* b = new Bbb();

try
{ a = dynamic_cast (b);
}
catch(bad_cast)
{ cout << "Error in " << __FILE__
<< ", line: " << __LINE__ << endl;
}
cout << typeid(a).name() << endl;
}
Преобразование классовclass Aaa{ public: int a;};class Bbb : public Aaa{ public: int b;};void main(){ Aaa* a =

Слайд 24Размещаемый оператор new
new (адрес размещения) тип;
new (адрес размещения) тип(параметры);

Размещаемый оператор newnew (адрес размещения) тип;new (адрес размещения) тип(параметры);

Слайд 25Встраиваемые функции
inline double sqr(double x)
{ return x*x;
}

Помещать лучше в заголовочный

файл

Встраиваемые функцииinline double sqr(double x){ return x*x;}Помещать лучше в заголовочный файл

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика