single_view
class (стандартная библиотека C++)
Представление с одним элементом. Это представление полезно для тестирования для вызова кода, который должен быть предоставлен с представлением по крайней мере с одним элементом в нем.
Синтаксис
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
Параметры шаблона
T
Тип элемента.
Просмотр характеристик
Описание следующих записей см. в разделе "Просмотр характеристик класса"
Characteristic | Description |
---|---|
Адаптер диапазона | views::single |
Базовый диапазон | нет |
Тип элемента | Указано при single_view создании |
Просмотр категории итератора | contiguous_range |
Размер | Всегда возвращает 1 |
Is const -iterable |
Да |
Общий диапазон | Да |
Заимствуемый диапазон | No |
Участники
Функции-члены | Description |
---|---|
КонструкторыC++20 | Создайте single_view |
begin C++20 |
Получите итератор в элемент. |
data C++20 |
Получите указатель на элемент. |
end C++20 |
Получите sentinel в конце представления. |
size C++20 |
Получение количества элементов. Всегда возвращает значение 1 . |
Наследуется от view_interface |
Description |
back C++20 |
Получите элемент. |
empty C++20 |
Проверьте, является ли представление пустым (всегда возвращается false ). |
front C++20 |
Получите элемент. |
operator[] C++20 |
Получите элемент в указанной позиции (допустима только позиция 0). |
operator bool C++20 |
Проверьте, не является ли представление пустым (всегда возвращается false ). |
Замечания
Лучший способ создания single_view
— использовать views::single
адаптер диапазона. Адаптеры диапазона — это способ создания классов представления. Типы представлений предоставляются в случае, если вы хотите создать собственный тип пользовательского представления.
Значение в объекте single_view
можно изменить, если значение шаблона не равно const
. Например: single_view<const float> sv{3.14} // this value can't be modified because it's const
.
Требования
Заголовок: <ranges>
(с C++20)
Пространство имен: std::ranges
Параметр компилятора: /std:c++20
или более поздней версии требуется.
Конструкторы
Создайте экземпляр single_view
.
1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
requires constructible_from<T, Args...>
constexpr single_view(in_place_t, Args&&... args);
Параметры
t
Значение элемента.
Сведения о типе параметра шаблона см. в разделе "Параметры шаблона".
Замечания
Лучший способ создания single_view
— использовать views::single
адаптер диапазона.
1) Создание single_view
с одним элементом указанного типа, созданного по умолчанию. Например, single_view<float> sv{}
создает single_view
элемент с одним элементом типа float
, который по умолчанию создан 0.0
в .
2) Создайте single_view
с одним элементом указанного типа, который инициализирован из указанного аргумента. Например, single_view<myObjectType> sv{myObject}
создает single_view
с одним элементом типа myObjectType
, инициализируемым из аргумента.
3) Создайте single_view
с одним элементом указанного типа, который инициализирован из аргумента.
4) Создание single_view
с одним элементом указанного типа, инициализированного с (std::forward<Args>(args)...)
помощью .
Пример: single_view
.
/// requires /std:c++20 or higher
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>
int main()
{
std::ranges::single_view<int> sv{7};
std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7
std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit
begin
Получите указатель на один элемент в представлении.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
Параметры
Нет.
Возвращаемое значение
Указатель на один элемент внутри single_view
.
data
Получение указателя на один элемент в элементе single_view
.
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
Параметры
Нет.
Возвращаемое значение
Указатель на элемент в элементе single_view
.
end
Возвращает указатель на sentinel после элемента.
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
Параметры
Нет.
Возвращаемое значение
Указатель на sentinel, следующий за элементом.
size
Получение количества элементов в представлении. Всегда возвращает значение 1
.
static constexpr size_t size() noexcept;
Параметры
Нет.
Возвращаемое значение
1
См. также
<ranges>
single
адаптер диапазона
empty_view
Просмотр классов