Выбрать главу

for ( ; it != end_it; ++ it ) cout *it ' ';

cout "\n";

// сортировка массива

sort( vec.begin(), vec.end() );

cout "упорядоченный массив: ";

it = vec.begin(); end_it = vec.end();

for ( ; it != end_it; ++ it ) cout *it ' ';

cout "\n\n";

int search_value;

cout "Введите значение для поиска: ";

cin search_value;

// поиск элемента

vectorint::iterator found;

found = find( vec.begin(), vec.end(), search_value );

if ( found != vec.end() )

cout "значение найдено!\n\n";

else cout "значение найдено!\n\n";

// инвертирование массива

reverse( vec.begin(), vec.end() );

cout "инвертированный массив: ";

it = vec.begin(); end_it = vec.end();

for ( ; it != end_it; ++ it ) cout *it ' ';

cout endl;

}

Стандартная библиотека С++ поддерживает и ассоциативные массивы. Ассоциативный массив – это массив, элементы которого можно индексировать не только целыми числами, но и значениями любого типа. В терминологии стандартной библиотеки ассоциативный массив называется отображением (map). Например, телефонный справочник может быть представлен в виде ассоциативного массива, где индексами служат фамилии абонентов, а значениями элементов – телефонные номера:

#include map

#include string

#include "TelephoneNumber.h"

mapstring, telephoneNum telephone_directory;

(Классы векторов, отображений и других контейнеров в подробностях описываются в главе 6. Мы попробуем реализовать систему текстового поиска, используя эти классы. В главе 12 рассмотрены обобщенные алгоритмы, а в Приложении приводятся примеры их использования.)

В данной главе были очень бегло рассмотрены основные аспекты программирования на С++, основы объектно-ориентированного подхода применительно к данному языку и использование стандартной библиотеки. В последующих главах мы разберем эти вопросы более подробно и систематично.

Упражнение 2.22

Поясните результаты каждого из следующих определений вектора:

string pals[] = {

"pooh", "tiger", "piglet", "eeyore", "kanga" };

(a) vectorstring svec1(pals,pals+5);

(b) vectorint ivec1(10);

(c) vectorint ivec2(10,10);

(d) vectorstring svec2(svec1);

(e) vectordouble dvec;

Упражнение 2.23

Напишите две реализации функции min(), объявление которой приведено ниже. Функция должна возвращать минимальный элемент массива. Используйте цикл for и перебор элементов с помощью

индекса

template class elemType

итератора

elemType min (const vectorelemType vec);

2013-11-14 09:35:20 Safronik

Есть места где вы не объясняете код. Просто вставляете непонятную инструкцию или строчку. Сложно.

2012-06-27 18:30:04 FeelUs

"Упражнение 2.8 Отношение наследования между типом и подтипом служит примером отношения является." - как-то не по русски

2012-05-30 18:46:11

"... private: static const int DefaultArraySize = 12; " - на это билдер ругался до тех пор, пока я не поместил обьявление класса в .h ----------------------------- Не " else ix[ix] = array[ix]; " , а "...iа[ix]". ----------------------------- " int IntArray::operator[] (int index) " ругается на непричасность к классу IntArray ----------------------------- Словил ошибку линкёра после переноса реализации класса в IntArray.cpp (в IntArray.h есть его обьявление, директивы include тоже, эта пара - один unit.

2011-10-14 19:42:59 Crazy_penguin

Глава 2 - Рассматривается ООП, конструкторы и деструкторы. Глава 3 - Изучаем, что такое переменные и цикл for. Кто-то кого-то где-то ...

Часть II

Основы языка

Код программы и данные, которыми программа манипулирует, записываются в память компьютера в виде последовательности битов. Бит – это мельчайший элемент компьютерной памяти, способная хранить либо 0, либо 1. На физическом уровне это соответствует электрическому напряжению, которое, как известно, либо есть , либо нет. Посмотрев на содержимое памяти компьютера, мы увидим что-нибудь вроде:

00011011011100010110010000111011 ...

Очень трудно придать такой последовательности смысл, но иногда нам приходится манипулировать и подобными неструктурированными данными (обычно нужда в этом возникает при программировании драйверов аппаратных устройств). С++ предоставляет набор операций для работы с битовыми данными. (Мы поговорим об этом в главе 4.)

Как правило, на последовательность битов накладывают какую-либо структуру, группируя биты в байты и слова. Байт содержит 8 бит, а слово – 4 байта, или 32 бита. Однако определение слова может быть разным в разных операционных системах. Сейчас начинается переход к 64-битным системам, а еще недавно были распространены системы с 16-битными словами. Хотя в подавляющем большинстве систем размер байта одинаков, мы все равно будем называть эти величины машинно-зависимыми.