C++ Курс

C++ STL: контейнеры и алгоритмы

Самоучитель Python 3, собранный из материалов данного сайта.Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.

Что такое STL?

Стандартная библиотека шаблонов (STL) предоставляет универсальные контейнеры и алгоритмы. Основные компоненты: контейнеры, итераторы и алгоритмы.

vector — динамический массив

#include <vector>
using namespace std;

vector<int> v = {3, 1, 4, 1, 5};
v.push_back(9);         // добавить в конец
v.pop_back();           // удалить с конца
cout << v[0];           // 3
cout << v.size();       // 5

for (auto x : v) cout << x << " ";

map — словарь

#include <map>

map<string, int> scores;
scores["Алиса"] = 95;
scores["Боб"]   = 87;

cout << scores["Алиса"]; // 95
scores.erase("Боб");

for (auto& [key, val] : scores) {  // C++17
    cout << key << ": " << val << "
";
}

set — уникальные отсортированные элементы

#include <set>

set<int> s = {5, 2, 8, 2, 1};
// s содержит: {1, 2, 5, 8} — отсортировано, без дубликатов
s.insert(3);
s.erase(2);

Сортировка и алгоритмы

#include <algorithm>

vector<int> v = {5, 2, 8, 1, 9};
sort(v.begin(), v.end());               // по возрастанию
sort(v.begin(), v.end(), greater<int>()); // по убыванию

int mx = *max_element(v.begin(), v.end()); // максимум
int cnt = count(v.begin(), v.end(), 1);    // количество вхождений

unordered_map — хэш-карта O(1)

#include <unordered_map>

unordered_map<string, int> freq;
string word;
while (cin >> word) freq[word]++;
// O(1) в среднем, в отличие от O(log n) у map