И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++ (ЧБ) (1114895), страница 19
Текст из файла (страница 19)
. .// Некоторые методы класса list// . . .list& operator=(const list<T,A> & obj);iterator erase(iterator i);// удаляет элемент, на который указывает данный// итератор. Возвращает итератор элемента, следующего// за удаленным элементом.iterator erase (iterator st, iterator fin);// Удаляются все элементы между st и fin, но fin не// удаляется. Возвращается fin.iterator insert(iterator i, const Т& value = T());// вставка значения value перед i.
Возвращает итератор// вставленного элемента.void insert (iterator i, size_type n, const T& value);// вставка n копий элементов со значением value перед// i.void push_back(const T& value); // добавляет элемент в// конец спискаvoid push_front(const T& value);void pop_back();void pop_front();// добавляет элемент// в начало списка// удаляет последний элемент.// Значение не возвращается.// удаляет первый элемент спискаsize_type size() const;}// выдает количество элементов// спискаbool empty() const; // возвращает значение true, если// вызывающий список пустvoid clear(); //удаляет все элементы списка. .
.109l.size()past-the-end-elementlist lэлементэлементэлементэлементl.rend()l.rbegin()l.begin(16.8.l.end()Пример решения задачи с использованием контейнеров STLЗадача:Написать функцию g() с тремя параметрами:• непустой и неизменяемый контейнер-вектор типа vector<float>,• непустой контейнер-список типа list<float>,• целое число – шаг по первому контейнеру.Функция должна исследоватьo элементы списка, выбираемые от его конца с шагом 1, иo элементы вектора, выбираемые от его начала с шагом, равнымтретьему параметру.Если обнаруживаются пары элементов разных знаков, то у текущего элемента списка должен меняться знак.После окончания сравнения контейнеров функция должна вывести на устройство вывода изменённый список.Функция возвращает общее количество неотрицательных элементовсписка.Решение:#include <iostream>#include <Vector>#include <List>using namespace std; // средства стандартной библиотеки,// и, в частности, STL, определены в// пространстве имен std.typedef vector<float> V;typedeflist<float> L;110int g(const V& vect, L& lst, int step){V:: const_iterator vp = vect.begin();L:: reverse_iterator lp = lst.rbegin();int t = 0;do {if (*lp * *vp < 0)*lp = -*lp;if (vect.end() - vp <= step)break;++ lp;vp += step;} while (lp != lst.rend());L::iterator rp = lst.begin();while (rp != lst.end()){cout << *rp << ' ';if (*rp >= 0)t++;++rp;};cout << endl;return t;}int main(){V vect1(15,0.0); // описание тестовых объектов// определенных типовL list1(15,0.0); // вектор чисел типа float и список// чисел типа float размером по 15// элементов с начальным// заполнением нулями.int i;.
. .i = g(vect1,list1,1);cout<< '\n' << "positive elements: " << i << '\n';return 0;}11117.Литература1.2.3.4.5.6.7.8.9.10.11.12.13.14.Standard for the C Programming Language ISO/IEC 9899, 1990.Standard for the C++ Programming Language ISO/IEC 14882, 1998.Архангельский А.Я. Компоненты общего назначения библиотеки C++Builder 5. - М.: ЗАО "Издательство БИНОМ" 2001 - 416 с.Архангельский А.Я. Язык Pascal и основы программирования в Delphi- М.: ООО "Бином-Пресс", 2004.Бокс Д. Сущность технологии COM.
Библиотека программиста. 4-еизд. - СПБ.: Питер, 2001 - 400 с.Глушаков С.В. Программирование на Visual C++ - М.: ООО "Издательство АСТ"; Харьков "Феликс", 2003 - 726 с.Гослинг Д., Арнольд К. Язык программирования Java. /Пер. с англ. СПБ.: Питер, 1997 - 304 с.Лясин Д.Н., Саньков С.Г.
Объектно-ориентированное программирование на языке С++: Учебное пособие./ Волгоград.гос.техн.ун-т,Волгоград, 2003 – 83 с.Пол Айра Объектно - ориентированное программирование на C++. 2-еизд./Пер. с англ. - СПБ.; М.: "Невский Диалект" - "Издательство БИНОМ", 1999 - 462 с.Пратт Т., Зелковиц М. Языки программирования: разработка и реализация. 4-е изд.
- СПБ.: Питер, 2002 - 688 с.Столяров А.В. Методы и средства визуального программирования.Раздел «введение в язык C++». М.: МГТУ ГА, 2008 – 112 c.Страуструп Б. Язык программирования C++. Специальное изд./Пер. сангл. - М.: "Бином", 2005.Шилдт Г. C# учебный курс. - СПБ.: Питер; К.: Издательская группаBHV, 2003 - 512 с.Шилдт Г. Самоучитель C++. 3-е изд., - СПБ.: БХВ-Петербург, 2002.112.