std::unique
Актуально для C++23.
#include <algorithm>
Актуально на 2024-02-29.
Define overload #1
template<class ForwardIterator> constexpr inline ForwardIterator unique(ForwardIterator first, ForwardIterator last);
Переместит дублирующие элементы, которые расположены друг за другом, из диапазона [first, last], в его конец.
Элементы сравниваются с помощью оператора сравнения "==".
Вернёт итератор указывающий на конец нового диапазона.
Example, possible implementation
Define overload #2
template <class ExecutionPolicy, class ForwardIterator, class BinaryPredicate> ForwardIterator unique(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last, BinaryPredicate pred);
Example, possible implementation
Define overload #3
template<class ForwardIterator, class BinaryPredicate> constexpr inline ForwardIterator unique(ForwardIterator first, ForwardIterator last, BinaryPredicate pred)
Переместит дублирующие элементы, которые расположены друг за другом, из диапазона [first, last], в его конец.
Для сравнения элементов применяется бинарный предикат pred.
Вернёт итератор указывающий на конец нового диапазона.
Example, possible implementation
Define overload #4
template <class ExecutionPolicy, class ForwardIterator> ForwardIterator unique(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last);
Example, possible implementation
Examples
Example 1:
#include <iostream> #include <algorithm> #include <string> int main() { std::string str{"aabccdedfff"}; auto end = std::unique(std::begin(str), std::end(str)); for (auto start = std::begin(str); start != end; ++start) { std::cout << *start; } return 0; }
abcdedf
Example 2:
#include <iostream> #include <algorithm> #include <string> int main() { auto pred = [](auto a1, auto a2) { return a1 == a2; }; std::string str{"aabccdedfff"}; auto end = std::unique(std::begin(str), std::end(str), pred); for (auto start = std::begin(str); start != end; ++start) { std::cout << *start; } return 0; }
abcdedf
Changelog
C++26
TODOC++23
TODOC++20
TODOC++17
TODOC++14
TODOC++11
TODOSee also
TODO
This page was last modified on 2024-02-29