C++ для начинающих - страница 27
>sort ( ia, ia+7 );
Так можно упорядочить первые четыре элемента:
>sort ( ia, ia+4 );
Для использования алгоритмов в программу необходимо включить заголовочный файл
>#include algorithm
Ниже приведен пример программы, использующей разнообразные алгоритмы в применении к объекту типа vector:
>#include vector
>#include algorithm
>#include iostream
>int ia[ 10 ] = {
>51, 23, 7, 88, 41, 98, 12, 103, 37, 6
>};
>int main()
>{
>vector int vec( ia, ia+10 );
>vectorint::iterator it = vec.begin(), end_it = vec.end();
cout "Начальный массив: ";
>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 рассмотрены обобщенные алгоритмы, а в Приложении приводятся примеры их использования.)
В данной главе были очень бегло рассмотрены основные аспекты программирования на С++, основы объектно-ориентированного подхода применительно к данному языку и использование стандартной библиотеки. В последующих главах мы разберем эти вопросы более подробно и систематично.
Поясните результаты каждого из следующих определений вектора:
>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;
Напишите две реализации функции 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. На физическом уровне это соответствует электрическому напряжению, которое, как известно, либо есть , либо нет. Посмотрев на содержимое памяти компьютера, мы увидим что-нибудь вроде: