РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
447 of 815 menu

Метод index

Метод index класса variant возвращает индекс альтернативы, которая в данный момент хранится в объекте variant. Индекс соответствует позиции типа в списке шаблонных параметров класса variant, начиная с нуля. Метод не принимает параметров и возвращает значение типа size_t. Если объект variant находится в состоянии valueless_by_exception, метод возвращает variant_npos.

Синтаксис

var.index()

Пример

Давайте создадим объект variant, способный хранить int, double и string, и проверим индекс для каждого хранимого значения:

#include <iostream> #include <variant> #include <string> using namespace std; int main() { variant<int, double, string> var; var = 42; cout << var.index() << endl; var = 3.14; cout << var.index() << endl; var = "abcde"; cout << var.index() << endl; return 0; }

Результат выполнения кода:

0 1 2

Пример

Давайте используем метод index вместе с методом get для получения значения из variant:

#include <iostream> #include <variant> #include <string> using namespace std; int main() { variant<int, double, string> var = "abcde"; if (var.index() == 2) { cout << get<string>(var) << endl; } return 0; }

Результат выполнения кода:

"abcde"

Пример

Давайте проверим, что возвращает метод index для варианта по умолчанию, инициализированного первым типом:

#include <iostream> #include <variant> #include <string> using namespace std; int main() { variant<int, double, string> var; cout << var.index() << endl; return 0; }

Результат выполнения кода:

0

Смотрите также

  • класс variant,
    который хранит значение одного из нескольких типов
  • метод get,
    который возвращает значение из variant
  • метод get_if,
    который возвращает указатель на значение из variant
  • метод holds_alternative,
    который проверяет, хранится ли в variant указанный тип
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить