std::vector тоже непрерывен, поэтому из него строят std::span тем же конструктором, что и из массива C. Ссылку на внутреннее хранилище вектора держит.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpSnVc 241 of 696 menu
◀ ▶

Кусок вектора через std::span в C++

Буфер std::vector тоже непрерывен, поэтому из него строят std::span тем же конструктором, что и из массива C.

Ссылку на внутреннее хранилище вектора держит Span: пока вектор не меняют так, что память переезжает, представление остается действительным. Запишем вектор из трех целых и выведем второй элемент:

#include <span> #include <vector> std::vector<int> ids{10, 20, 30}; std::span<int> part{ids}; std::cout << part[1] << "\n";

Изменение элемента через span видно в векторе и наоборот. Запишем вектор строк, поменяем первую строку через span и выведем ее:

#include <span> #include <string> #include <vector> std::vector<std::string> names{"Ann", "Bob"}; std::span<std::string> view{names}; view[0] = "Amy"; std::cout << names[0] << "\n";

Создайте std::vector<int> с числами 2, 4, 6, постройте std::span<int> и выведите сумму первого и третьего.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить