Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП - 2 часть - Лекция 4. STL.docx
Скачиваний:
12
Добавлен:
11.05.2015
Размер:
134.67 Кб
Скачать

4.2.2Move/move_backward

Перемещает диапазон элементов.

4.2.3swap/swap_ranges

Swapобменивает состояния двух объектов: единичных объектов или коллекций.Swap_rangesобменивает диапазоны значений.

#include "stdafx.h"

#include <iostream>

#include <algorithm>

#include <vector>

#include <string>

using namespace std;

int _tmain()

{

vector<int> data1 = {13, 666};

vector<int> data2 = {22, 444};

swap(data1, data2);

int x = 13;

int y = 666;

swap(x, y);

getchar();

return 0;

}

4.2.4transform

Выполняет какое-то преобразование над каждым элементом диапазона и куда-то сохраняет результаты.

4.2.5 replace / replace_if / replace_copy / replace_copy_if

Replaceзаменяет одно значение на другое по всей коллекции.

Replace_ifзаменяет значения на другое, если эти значения удовлетворяют функтор.

Replace_copyкопировать с заменой одного значения на другое.

Replace_copy_ifкопировать с заменой значений на другое значение, удовлетворяющих функтор.

4.2.6fill/fill_n

Fillзаполняет диапазон заданным значением.Fill_nзаполняетnпервых значений, начиная с заданного.

4.2.7generate/generate_n

Generateзаполняет диапазон значений теми, что генерируются функтором.Generate_n заполняет только первых n значений.

4.2.8 remove / remove_if / remove_copy / remove_copy_if

Removeработает как иreplace, только удаляет элементы.

4.2.9unique/unique_copy

Uniqueудаляет неуникальные элементы, расположенные друг за другом.

Unique_copyудалить неуникальные элементы, расположенные друг за другом, при копировании.

4.2.10reverse/reverse_copy

Reverseобращает порядок, в котором хранятся элементы в коллекции.

4.2.11rotate/rotate_copy

Поворот коллекции так, что средний элемент становится первым.

4.2.12shuffle/random_shuffle

Shuffleперемешивает элементы в коллекции.Random_shuffleиспользует для перемешивания еще и функтор.

4.3 Расположения элементов в коллекции (партиции)

4.3.1is_partioned

Проверяет что в начале коллекции есть элементы, удовлетворяющие функтору (первая партиция), а все остальные – не удовлетворяют функтору (вторая партиция).

4.3.2partition/stable_partition/partition_copy

Partitionперемещает элементы множества так, что в начале оказываются те элементы, что удовлетворяют какому-то условию.

Stable_partitionпри разбивке на партиции сохраняет порядок, в котором были элементы относительно друг друга в исходной коллекции.

4.3.3partition_point

Получает итератор на место, где одна партиция закончилась.

4.4 Сортировка

4.4.1sort/stable_sort

Сортирует набор элементов в коллекции. У элементов должен быть или оператор < быть реализован. Или должна использовать перегрузка, где функтор сравнивает фрагменты коллекции.

#include "stdafx.h"

#include <iostream>

#include <algorithm>

#include <vector>

#include <string>

using namespace std;

struct Person

{

string Name;

Person(const string& name) : Name(name)

{

}

};

int _tmain()

{

vector<Person> persons = {

Person("Ahmed"),

Person("Anna")};

sort(persons.begin(), persons.end(), [](const Person& a, const Person& b) { return a.Name > b.Name; });

vector<int> numbers = {22, 444};

sort(numbers.begin(), numbers.end());

return 0;

}

Stable_sortв отличие отsortсохраняет относительный порядок эквивалентных элементов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]