Библиотека boost c описание

Подробно работа с матрицами и метод наименьших квадратов разбирается в лабораторной работе №2.

Описание работы с библиотекой Boost

В данной работе для операций с матрицами используется свободно распространяемая библиотека uBLAS из состава набора библиотек Boost.

Документация по библиотеке uBLAS 1.55.0 на официальном сайте www.boost.org..

Документация по библиотеке uBLAS 1.32.0 на русском языке.

Установка библиотеки

  • Для работы с библиотекой в Visual Studio необходимо скопировать папку "boost" в папку включаемых файлов. Если вы не изменяли настройки Visual Studio по-умолчанию, то путь к папке включаемых файлов: C:/Program Files/Microsoft Visual Studio 14.0/VC/include .
  • Для работы с библиотекой в Qt Creator необходимо в файле проекта ( *.pro ) добавить строку:
    INCLUDEPATH += [полный путь к boost]. Например INCLUDEPATH += C:/Qt/lib/.

Вычисление обратной матрицы

Стандартными средствами библиотеки uBLAS обращения матрицы не реализовано, но можно использовать вычисление обратной матрицы, сделанное на ее основе. Для этого скопируйте в папку с вашим проектом файл inverse.h .

Boost
Тип библиотека
Написана на С++
Операционная система Кроссплатформенный
Последняя версия 1.71.0(19 августа 2019)
Состояние активное
Лицензия Boost Software License
Сайт boost.org
Медиафайлы на Викискладе

Boost — собрание библиотек классов, использующих функциональность языка C++ и предоставляющих удобный кроссплатформенный высокоуровневый интерфейс для лаконичного кодирования различных повседневных подзадач программирования (работа с данными, алгоритмами, файлами, потоками и т. п.). Свободно распространяются по лицензии Boost Software License [1] вместе с исходным кодом. Проект был создан после принятия стандарта C++, когда многие были недовольны отсутствием некоторых библиотек в STL. Проект является своего рода «испытательным полигоном» для различных расширений языка и части библиотек [2] , которые являются кандидатами на включение в следующий стандарт C++. Boost имеет заметную направленность на исследования и расширяемость (метапрограммирование и обобщённое программирование с активным использованием шаблонов).

Читайте также:  Как перекрыть отопление в квартире если жарко

Содержание

Библиотеки [ править | править код ]

Библиотеки Boost охватывают следующее:

Примеры [ править | править код ]

Линейная алгебра [ править | править код ]

Boost включает библиотеку линейной алгебры uBLAS с операциями для векторов и матриц.

Пример, показывающий умножение матрицы на вектор:

Подробнее: документация uBLAS [3] и описание операций [4] .

Генерирование псевдослучайных чисел [ править | править код ]

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

Подробнее см. Boost Random Number Library [5] .

Разбор текста [ править | править код ]

Spirit — одна из наиболее сложных частей Boost, предназначенная для написания синтаксических анализаторов (жарг. парсеров от англ. parser ; «parse» — анализ, разбор) напрямую в C++ тексте программы в виде, близком к форме Бэкуса-Наура. Пример синтаксического анализатора для чтения чисел, разделённых запятой:

Подробнее Spirit User’s Gu >[6] .

Использование регулярных выражений [ править | править код ]

Boost.Regex — библиотека работы с регулярными выражениями. Имеет необходимую функциональность для фильтрации, поиска, разбора и обработки текста.

Поддерживает PCRE, POSIX BRE и ERE

Пример программы для разбора текста:

Алгоритмы на графах [ править | править код ]

Boost Graph Library (BGL) предоставляет гибкую и эффективную реализацию концепции графов. Можно выбрать представление графа (например, список смежности или матрица смежности), тип данных (тип GRAPH из LEDA, Graph* из Stanford GraphBase, std::vector из STL) и алгоритм из большого набора алгоритмов, среди которых: [8]

Подробнее Boost Graph Library [9] .

Многопоточность [ править | править код ]

Пример кода, показывающий создание потоков:

Подробности можно найти в документации [10] и в статьях в Dr. Dobb’s Journal, описывающих библиотеку. [11] [12]

6 Лекция — Библиотека Boost. Многопоточный сервер на boost.

Библиотека Boost.

Boost — собрание библиотек, расширяющих функциональность C++.

Читайте также:  Linux mint не находит bluetooth устройства

Проект является своего рода «испытательным полигоном», и часть библиотек являются кандидатами на включение в следующий стандарт C++. Некое дополнение к STL.

Библиотеки Boost охватывают следующее:

  • Алгоритмы
  • Обход ошибок в компиляторах, не соответствующих стандарту
  • Многопоточное программирование
  • Контейнеры
  • Юнит-тестирование
  • Структуры данных
  • Функциональные объекты
  • Обобщённое программирование
  • Графы
  • Работа с геометрическими данными
  • Ввод-вывод
  • Межъязыковая поддержка
  • Итераторы
  • Математические и числовые алгоритмы
  • Работа с памятью
  • Синтаксический и лексический разбор
  • Метапрограммирование на основе препроцессора
  • «Умные указатели»
  • Обработка строк и текста
  • Метапрограммирование на основе шаблонов
  • и т.д.

Библиотека для C++ (ООП библиотека). Это некая ООП надстройка над PThreads. Позволяет писать в стиле ООП, что упрощает синтаксис и делает программы более безопасными.

Компилятору необходимо указывать библиотеку, например:

c++ -lboost_system -lboost_thread main.cpp

Переписанная программа из прошлых лекций (pthreads=>boost):

Многопоточный сервер на boost.

Простой многопоточный сервер, который возвращает все что прислал клиент (по TCP):