C++ за 21 день седьмое издание



Download 1,38 Mb.
bet392/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   388   389   390   391   392   393   394   395   ...   437
Bog'liq
word1

#include




  1. #include




  1. using namespace std;








  1. in t main ()




  1. {

    6:

    vector vecBoolFlags (3); / /

    создать экземпляр




    / /

    для 3 логических флагов

  2. vecBoolFlags [0] = true;




  1. vecBoolFlags [1] = true;



9: vecBoolFlags [2] = fa lse ;


1 0 :
11: vecBoolFlags.push_back (true); / / вставить четвертый флаг в конец
1 2 :

13:

cout

«

"The contents

of

the vector

are: " « endl;

14:

for

(siz e _ t

nlndex =

0;

nlndex < vecBoolFlags. s iz e (); ++ nlndex)

15:

cout

«

vecBoolFlags

[nlndex] «

' ';

16:






















  1. cout « endl;




18:

vecBoolFlags. f l i p ();

19:




  1. cout « "The contents of the vector are: " « endl;

    21:

    for (siz e _ t

    nlndex = 0;

    nlndex < vecBoolFlags. s iz e (); ++ nlndex)

    22:

    cout «

    vecBoolFlags

    [nlndex] « ' ';

    23:










  2. cout « endl;








  1. return 0;




  1. }



Результат


The contents of the vector are:


110 1


The contents of the vector are:


0010


Анализ

Здесь для обращ ения к логическим флагам в векторе используется оператор o p e ra to r!] (строки 7 -9), как и в обычном векторе. Функция f lip ( ) используется в


строке 18 для инверсии индивидуальных битовых флагов, по существу преобразовывая все 0 в 1, и наоборот. Обратите внимание на применение функции push_back () в строке 11. Хотя изначально вектор vecB oolFlags был создан для хранения трех флагов (строка 6),





  1. строке 11 к нему удалось добавить еще один. Добавление большего количества флагов, чем было определено вначале, а также возможность выбрать их количество динамически уже после компиляции, отличает vector от класса s t d : :b its e t .

Резюме

5 6 9



Резюме

На сегодняшнем занятии рассматривался весьма эффективный инструмент обработки битовых последовательностей и битовых флагов: класс s t d : : b i t s e t . Вы также узнали





  1. классе v e c to r< b o o l> , который также позволяет хранить логические флаги, количество которых, однако, не обязательно знать на момент компиляции.



Вопросы и ответы



  1. В ситуации, где применимы оба класса, std : ib it s e t и vector, какой из них вы предпочли бы для хранения бинарных флагов?

Класс s t d : : b i t s e t , поскольку он лучше всего подходит для этого требования.



  1. У меня есть объект myBitSeq класса std : :b itse t, хранящий определенное коли­ чество битов. Как мне определить количество битов со значением 0 (или f a ls e ) ?

Метод b i t s e t :: c o u n t () возвращает количество битов со значением 1. Вычтя это зна­


чение из значения, возвращенного методом b i t s e t : : s i z e ( ) (полное количество хра­ нимых битов), получим количество 0 в последовательности.



  1. Могу ли я использовать итераторы для доступа к индивидуальным элементам в объекте класса vector?

Да. П оскольку класс v e c t o r < b o o l > — это частичная специализация класса s t d : : v e c to r , а он поддерживает итераторы.



  1. Могу ли я во время компиляции задать количество элементов, которые будут хра­ ниться в объекте класса vector?

Да, либо указав количество в перегруженном конструкторе, либо используя функцию v e c to r < b o o l> :: r e s i z e позднее.


Коллоквиум



  1. этом разделе предлагаются вопросы для самоконтроля и закрепления полученных знаний, а также упражнения, которые помогут применить на практике полученные навы­ ки. Попытайтесь самостоятельно ответить на эти вопросы и выполнить задания, а потом сверьте полученные результаты с ответами в приложении Г, “Ответы”. Если остались не­ ясными хотя бы некоторые из предложенных ниже вопросов, не приступайте к изучению материала следующего занятия.

Контрольные вопросы



  1. Может ли набор битов расширить свой внутренний буфер для хранения переменно­ го количества элементов?




  1. Почему класс b i t s e t не считается контейнерным классом библиотеки STL?




  1. Использовали бы вы класс s t d :: v e c to r для хранения фиксированного количества битов, известного на момент компиляции?

570 ЗАНЯТИЕ25.РаботасбитовымифлагамиприиспользованиибиблиотекиЗТ1-




Упражнения



  1. Напишите пример, где набор битов содержит четыре бита. Инициализируйте его, отобразите результат и добавьте его к другому набору битов. (Предостережение:

наборы битов не допускают такой синтаксис: b i t s e t A = b i t s e t X + b its e tY . )


2. Покажите, как бы вы инвертировали биты в наборе битов.


ЧАСТЬ V


Передовые
концепции
языка C++
ЗАНЯТИЕ 26. Понятие интеллектуальных указателей ЗАНЯТИЕ 27. Применение потоков для ввода и вывода ЗАНЯТИЕ 28. Обработка исключений ЗАНЯТИЕ 29.Что дальше
ЗАНЯТИЕ 26


Понятие
интеллектуальных
указателей
Программисты C++ не обязаны использовать простые ссылочные типы при управлении распределяемой памятью (или динамической па­ мятью); они могут использовать интеллектуальные указатели.

На сегодняшнем занятии.


■ Что такое интеллектуальный указатель и зачем он нужен.


■ Как реализуются интеллектуальные указатели.


■ Типы интеллектуальных указателей.


■ Почему не стоит использовать устаревший тип std: :auto_ptr.


■ Интеллектуальный указатель std: :unique_ptr стандартной библиотеки С++11.


■ Популярные библиотеки интеллектуальных указателей.


ЗАНЯТИЕ 26
Понятие
интеллектуальных
указателей
Программисты C++ не обязаны использовать простые ссылочные типы при управлении распределяемой памятью (или динамической па­ мятью); они могут использовать интеллектуальные указатели.

На сегодняшнем занятии.


■ Что такое интеллектуальный указатель и зачем он нужен.


■ Как реализуются интеллектуальные указатели.


■ Типы интеллектуальных указателей.


■ Почему не стоит использовать устаревший тип std: :auto_ptr.


■ Интеллектуальный указатель std: :unique_ptr стандартной библиотеки С++11.


■ Популярные библиотеки интеллектуальных указателей.


574 ЗАНЯТИЕ 26. Понятие интеллектуальных указателей



Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   388   389   390   391   392   393   394   395   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish