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

Функция as_const

Функция as_const принимает объект и возвращает константную ссылку на него. Для вектора это означает, что вы получаете доступ к элементам только для чтения. В первый параметр мы передаем сам вектор, а функция возвращает const std::vector<T>&. Это удобно при передаче вектора в функции, которые не должны изменять его содержимое.

Синтаксис

std::as_const(vec)

Пример

Давайте создадим вектор с числами и приведем его к константной ссылке с помощью as_const, чтобы убедиться, что размер и элементы доступны только для чтения:

#include <iostream> #include <vector> #include <utility> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; const auto& cvec = as_const(vec); cout << cvec.size() << endl; cout << cvec[0] << endl; return 0; }

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

5 1

Пример

Функция as_const полезна при передаче вектора в шаблонные функции, где важно избежать случайного изменения данных. Попробуем изменить элемент через константную ссылку - компилятор выдаст ошибку:

#include <iostream> #include <vector> #include <utility> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; const auto& cvec = as_const(vec); // cvec[0] = 10; // ошибка: нельзя изменить cout << cvec.back() << endl; return 0; }

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

5

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

  • класс vector,
    который представляет динамический массив
  • метод size,
    который возвращает количество элементов вектора
  • метод at,
    который возвращает элемент по индексу с проверкой границ
  • метод data,
    который возвращает указатель на внутренний массив
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить