Popularne biblioteki C++

Podobne dokumenty
Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

Języki C i C++ Wykład: 1. Wstęp Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Języki C i C++, sem.

PROGRAMOWANIE w C prolog

13.1 Standardowa biblioteka C Klasa string... 3

Programowanie i struktury danych

Programowanie. Sylwester Arabas. prowadzący ćwiczenia: Magdalena Kuich, Krzysztof Piasecki, Łukasz Dulny. Wydział Fizyki Uniwersytetu Warszawskiego

Preprocesor języka C: dyrektywy, makrodefinicje

Zaawansowane programowanie w języku C++ Biblioteka standardowa

Programowanie, część II

Język C++ Różnice między C a C++

Funkcja (podprogram) void

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Jzyk C++ cz 2. Jarosław Gramacki Instytut Informatyki i Elektroniki

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Podstawy Programowania

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Iteratory, Alokatory, Przyszłość C++, Boost

W przypadku STL w specyfikacji nazwy pliku nagłówkowego brak rozszerzenia tj. <string> <string.h> zamiast

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

I - Microsoft Visual Studio C++

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Programowanie Obiektowo Zorientowane w języku C++ Biblioteka STL

Wykład 1

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Podstawy programowania. Wykład Funkcje raz jeszcze. Biblioteka standardowa. Krzysztof Banaś Podstawy programowania 1

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Programowanie Komponentowe Zarządzanie obiektami: kontenery

STL: Lekcja 1&2. Filozofia STL

Kurs programowania. Wykład 9. Wojciech Macyna

Spis treści. Wprowadzenie 15

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Część 4 życie programu

STL Standardt Template Library (wprowadzenie)

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Podstawy Programowania

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Kompletna dokumentacja kontenera C++ vector w -

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Projektowanie klas c.d. Projektowanie klas przykład

Wstęp do programowania

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Języki i metodyka programowania. Wprowadzenie do języka C

Podział programu na moduły

C++ - szablony. C++ - szablony. C++ - szablony. C++ - szablony SZABLONY SZABLONY FUNKCJI

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Programowanie, część III

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Podstawy otwartych języków programowania Przechowywanie danych

Podstawy programowania komputerów

Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Grzegorz Paweł Korbaś. Podstawy C++ Zbiór zadań z rozwiązaniami. Opole 2011 wydanie pierwsze wydawnictwo czytnia.pl

Operacje wejścia/wyjścia odsłona pierwsza

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Struktury Danych i Złożoność Obliczeniowa

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Szablony funkcji i klas (templates)

Zaawansowane programowanie w C++ (PCP)

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Język C++ wykład VIII

Wstęp do Programowania 2

Algorytmy i Struktury Danych.

Komunikacja w mikrokontrolerach. Podstawy programowania. Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski

Praca z aplikacją designer

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie w języku C++

Wstęp do Programowania, laboratorium 02

Programowanie obiektowe W3

Podstawy programowania w Qt4

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Programowanie w środowiskach RAD Qt i C++

2018 Marcin Kukliński. Niesforne bity i bajty

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Qt sygnały i designer

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Podstawy programowania skrót z wykładów:

Organizacja kursu, paradygmaty, ogólnie o C i C++

Zaawansowane programowanie w języku C++

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Qt hierarchia elementów graficznych

Zasady programowania Dokumentacja

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Najlepsze źródło informacji o C++! Kompletny podręcznik do nauki C++!

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

#include <iostream> #include <string> using namespace std; auto main() -> int { string s1; // pusty string. Klasa std::string

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Smarty PHP. Leksykon kieszonkowy

Technologie programowania Wykład 4. Szablony funkcji Notes. Szablony funkcji Notes. Szablony funkcji Notes. Notes. Przemek Błaśkiewicz.

Bogdan Kreczmer. Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Transkrypt:

Popularne biblioteki C++

Biblioteka standardowa 1. Biblioteki odziedziczone z C <cassert> (assert.h) <cctype> (ctype.h) <cerrno> (errno.h) <cfenv> (fenv.h) <cfloat> (float.h) <cinttypes> (inttypes.h) <ciso646> (iso646.h) <climits> (limits.h) <clocale> (locale.h) <cmath> (math.h) <csetjmp> (setjmp.h) <csignal> (signal.h) <cstdarg> (stdarg.h) <cstdbool> (stdbool.h) <cstddef> (stddef.h) <cstdint> (stdint.h) <cstdio> (stdio.h) <cstdlib> (stdlib.h) <cstring> (string.h) <ctgmath> (tgmath.h) <ctime> (time.h) <cuchar> (uchar.h) <cwchar> (wchar.h) <cwctype> (wctype.h)

Biblioteka standardowa 2. Kontenery (STL) <array> <deque> <forward_list> <list> <map> <queue> <set> <stack> <unordered_map> <unordered_set> <vector>

Biblioteka standardowa 3. Operacje wejścia wyjścia (strumienie) <fstream> <iomanip> <ios> <iosfwd> <iostream> <istream> <ostream> <sstream> <streambuf>

Biblioteka standardowa 4. Wielowątkowość <atomic> <condition_variable> <future> <mutex> <thread>

Biblioteka standardowa 5. Inne <algorithm> <bitset> <chrono> <codecvt> <complex> <exception> <functional> <initializer_list> <iterator> <limits> <locale> <memory> <new> <numeric> <random> <ratio> <regex> <stdexcept> <string> <system_error> <tuple> <typeindex> <typeinfo>

www.boost.org: Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.

Boost to kolekcja plików nagłówkowych Funkcjonalność stopniowo przenoszona do samego języka (C++11, C++14, C++17)

Algorytmy foreach BOOST_FOREACH makro dla prostej iteracji elementów sekwencyjnych graph Ogólne komponenty i algorytmy dla grafów minmax standardowe rozszerzenie biblioteki dla jednoczesnego obliczania min/max i min/max elementu range Nowa infrastruktura generic algorithms będąca efektem nowej koncepcji iteratora string_algo Biblioteka algorytmów pracujących na łańcuchach utility Szablon funkcji klas next(), prior() Programowanie współbieżne asio Przenośne sieci i inne interfejsy I/O niskiego poziomu, w tym: sockets, timers, hostname resolution, socket iostreams, serial ports, file descriptors oraz Windows HANDLEs interprocess pamięć współdzielona, pliki mapowania pamięci, współdzielenie międzyprocesowe mutexes, zmienne warunkowe, kontenery i wskaźniki MPI biblioteka Message Passing Interface, do użytku przy programowaniu aplikacji obliczeń równoległych typu distributed-memory thread Przenośny C++ multi-threading

Kontenery array struktura kontenera (STL compliant container wrapper) dla tablic o stałym rozmiarze bimap Mapowanie dwukierunkowe (maps) circular_buffer kontener STL znany również jako bufor cykliczny dynamic_bitset Wersja dynamicznie zmienna std::bitset graph Ogólne komponenty i algorytmy dla grafów intrusive Intrusywne contenery i algorytmy multi_array Adaptery i Kontenery wielowymiarowe dla tablic przyległych danych multi_index Kontenery z wielokrotnym interfejsem dostępu kompatybilnego z STL pointer container Kontenery do zapisu pamięci dynamicznie alokowanej (heap dla ułatwienia programowania zorientowanego obiektowo property map Interfejsy definiowania koncepcyjnego mapujące obiekty kluczy z obiektami wartości unordered nieuporządkowane kontenery asocjacyjne variant Bezpieczny, ogólny, bazujący na stosie stack-based kontener z wariantami

Sprawdzanie poprawności i testowanie concept check Ogólne narzędzie programowania static_assert Statyczna asercja (asercja podczas kompilacji) test Wsparcie dla prostych testów programu, testów full unit oraz monitorowania pracy programu Struktury danych any Bezpieczny, ogólny kontener dla pojedynczych wartości różnych typów bimap Dwukierunkowe mapy compressed_pair Optymalizacja pustego elementu fusion Biblioteka przeznaczona do pracy z TUPLES, z różnymi kontenerami, algorytmami itp. multi_index Kontenery z STL-kompatybilnym interfejsem wielodostępowym pointer container Kontener do zapisu dynamicznie alokowanych obiektów polimorficznych, ułatwiający programowanie zorientowane obiektowo property tree Drzewiasta struktura danych przeznaczona do przechowywania danych konfiguracyjnych tuple Proste definicje funkcji zwracających dane złożone itp.. uuid Universally Unique Identifiers variant Stabilny, ogólny, bazujący na stosie kontener wariantowy

Programowanie uogólnione Grafy Wejście/wyjście Wspomaganie dla łączenia z programami napisanymi w języku Python Iteratory Matematyka i obliczenia numeryczne Zarządzanie pamięcią Parsery Metaprogramowanie za pomocą preprocesora Inteligentne wskaźniki z automatycznym zliczaniem referencji Łańcuchy znaków i przetwarzanie tekstów Metaprogramowanie z użyciem szablonów

boost::regex boost::regex_match boost::regex e("(a?(ba)+\\d+)(tm)?"); std::string s("tmababa11tm"); if (boost::regex_match(s, e))

boost::regex boost::regex_search boost::regex e("(abc)?(def)(ghi)+"); std::string s("abcdefghighi defdefghi defghi"); std::string::const_iterator start, end; start = s.begin(); end = s.end(); boost::match_results<std::string::const_iterator> matched; while (boost::regex_search(start, end, matched, e)) { std::cout << " " << matched.str() << std::endl; start = matched[0].second; }

boost::tuple Tuple tup3(3, 4, 5, 'b'); boost::tie(a,b,c,d) = tup3; int i = boost::get<0>(tup); //tup.get<0>(); boost::get<1>(tup) = 5.4; std::cout << tup << std::endl;

Qt Core Qt GUI Qt Multimedia Qt Multimedia Widgets Qt Network Qt QML Qt Quick Qt Quick Controls Qt Quick Dialogs Qt Quick Layouts Qt SQL Qt Test Qt Widget #include <QApplication> #include <QPushButton> int main(int argc, char **argv) { QApplication app (argc, argv); QWidget window; window.setfixedsize(100, 50); QPushButton *button = new QPushButton("Hello World", &window); button->setgeometry(10, 10, 80, 30); window.show(); return app.exec(); }