Поделиться через


Класс Platform::Collections::Vector

Представляет упорядоченную коллекцию объектов с индивидуальным доступом, осуществляемым при помощи индекса. Реализует Windows::Foundation::Collections::IObservableVector, чтобы помочь с привязкой данных XAML.

Синтаксис

template <typename T, typename E>
   ref class Vector sealed;

Параметры

T
Тип элементов, содержащихся в объекте Vector.

E
Задает двоичный предикат для тестирования равенства со значениями типа T. Значение по умолчанию — std::equal_to<T>.

Замечания

Допустимые типы:

  1. integers

  2. класс интерфейса^

  3. открытый ссылочный класс ^

  4. value struct

  5. открытый класс перечисления

Класс Vector — это конкретная реализация интерфейса Windows::Foundation::Collections::IVector .

Если вы пытаетесь использовать тип Vector в общедоступном возвращаемом значении или параметре, возникает ошибка компилятора C3986. Вы можете исправить ошибку, изменив тип параметра или возвращаемого значения на Windows::Foundation::Collections::IVector. Дополнительные сведения см. в разделе Collections (C++/CX).

Участники

Открытые конструкторы

Имя Описание
Vector::Vector Инициализирует новый экземпляр класса Vector.

Открытые методы

Имя Описание
Vector::Append Вставляет указанный элемент после последнего элемента текущего объекта Vector.
Vector::Clear Удаляет все элементы текущего объекта Vector.
Vector::First Возвращает итератор, указывающий первый элемент объекта Vector.
Vector::GetAt Извлекает элемент текущего объекта Vector, указанный заданным индексом.
Vector::GetMany Извлекает последовательность элементов из текущего объекта Vector, начиная с указанного индекса.
Vector::GetView Возвращает доступное только для чтения представление объекта Vector, то есть Platform::Collections::VectorView.
Vector::IndexOf Выполняет поиск указанного элемента в текущем объекте Vector и возвращает его индекс, если он найден.
Vector::InsertAt Вставляет указанный элемент в текущий вектор в элементе, определяемом указанным индексом.
Vector::ReplaceAll Удаляет элементы из текущего объекта Vector, а затем вставляет элементы из указанного массива.
Vector::RemoveAt Удаляет элемент, определенный заданным индексом из текущего объекта Vector.
Vector::RemoveAtEnd Удаляет элемент в конце текущего объекта Vector.
Vector::SetAt Присваивает указанное значение к элементу текущего объекта Vector, определяемому заданным индексом.
Vector::Size Возвращает количество элементов в текущем объекте Vector.

События

Имя Описание
event Windows::Foundation::Collection::VectorChangedEventHandler<T>^ VectorChanged Происходит при изменении объекта Vector.

Иерархия наследования

Vector

Requirements

Заголовок: collection.h

Пространство имен: Platform::Collections

Метод Vector::Append

Вставляет указанный элемент после последнего элемента текущего объекта Vector.

Синтаксис

virtual void Append(T item);

Параметры

index
Элемент, который требуется вставить в объект Vector. Тип элемента определяется именем типа T .

Метод Vector::Clear

Удаляет все элементы текущего объекта Vector.

Синтаксис

virtual void Clear();

Метод Vector::First

Возвращает итератор, указывающий первый элемент объекта Vector.

Синтаксис

virtual Windows::Foundation::Collections::IIterator <T>^ First();

Возвращаемое значение

Итератор, указывающий первый элемент объекта Vector.

Замечания

Удобный способ хранения итератора, возвращаемого First(), заключается в назначении возвращаемого значения переменной, объявленной с auto вычетом типов ключевое слово. Например, auto x = myVector->First();. Этому итератору известна длина коллекции.

Если требуется пара итераторов для передачи функции STL, используйте бесплатные функции Windows::Foundation::Collections::begin и Windows::Foundation::Foundation::Collections:end

Метод Vector::GetAt

Извлекает элемент текущего объекта Vector, указанный заданным индексом.

Синтаксис

virtual T GetAt(unsigned int index);

Параметры

index
Целое значение без знака, отсчитываемое от нуля, которое указывает определенный элемент в объекте Vector.

Возвращаемое значение

Элемент, указанный параметром индекса . Тип элемента определяется именем типа T .

Метод Vector::GetMany

Извлекает последовательность элементов из текущего объекта Vector, начиная с определенного индекса, и копирует их в выделенный вызывающим объектом массив.

Синтаксис

virtual unsigned int GetMany(
    unsigned int startIndex,
    Platform::WriteOnlyArray<T>^ dest);

Параметры

startIndex
Отсчитываемый от нуля индекс начала элементов для извлечения.

dest
Выделенный вызывающим массив элементов, начинающийся с элемента, заданного startIndex и заканчивающийся последним элементом в Vector.

Возвращаемое значение

Количество извлеченных элементов.

Замечания

Эта функция не предназначена для прямого использования в клиентском коде. Он используется внутри функции to_vector для обеспечения эффективного преобразования экземпляров Platform::Vector intances в std::vector.

Метод Vector::GetView

Возвращает доступное только для чтения представление объекта Vector, то есть интерфейс IVectorView.

Синтаксис

Windows::Foundation::Collections::IVectorView<T>^ GetView();

Возвращаемое значение

Объект IVectorView.

Метод Vector::IndexOf

Выполняет поиск указанного элемента в текущем объекте Vector и возвращает его индекс, если он найден.

Синтаксис

virtual bool IndexOf(T value, unsigned int* index);

Параметры

значение
Элемент, который нужно найти.

index
Отсчитываемый от нуля индекс элемента, если найдено значение параметра; в противном случае — значение 0.

Параметр индекса равен 0, если элемент является первым элементом Vector или элементом не найден. Если возвращаемое значение равно true, элемент найден и является первым элементом; в противном случае элемент не найден.

Возвращаемое значение

true Значение falseв противном случае .

Замечания

IndexOf использует std::find_if для поиска элемента. Таким образом, типы настраиваемых элементов должны перегрузить оператор == и != для включения сравнений на равенство, которое требуется для find_if.

Метод Vector::InsertAt

Вставляет указанный элемент в текущий вектор в элементе, определяемом указанным индексом.

Синтаксис

virtual void InsertAt(unsigned int index, T item)

Параметры

index
Целое значение без знака, отсчитываемое от нуля, которое указывает определенный элемент в объекте Vector.

item
Элемент, вставляемый в Vector по элементу, указанному индексом. Тип элемента определяется именем типа T .

Метод Vector::RemoveAt

Удаляет элемент, определенный заданным индексом из текущего объекта Vector.

Синтаксис

virtual void RemoveAt(unsigned int index);

Параметры

index
Целое значение без знака, отсчитываемое от нуля, которое указывает определенный элемент в объекте Vector.

Метод Vector::RemoveAtEnd

Удаляет элемент в конце текущего объекта Vector.

Синтаксис

virtual void RemoveAtEnd();

Метод Vector::ReplaceAll

Удаляет элементы из текущего объекта Vector, а затем вставляет элементы из указанного массива.

Синтаксис

virtual void ReplaceAll(const ::Platform::Array<T>^ arr);

Параметры

Arr
Массив объектов, тип которого определяется именем типа T .

Метод Vector::SetAt

Присваивает указанное значение к элементу текущего объекта Vector, определяемому заданным индексом.

Синтаксис

virtual void SetAt(unsigned int index, T item);

Параметры

index
Целое значение без знака, отсчитываемое от нуля, которое указывает определенный элемент в объекте Vector.

item
Значение, присваиваемое указанному элементу. Тип элемента определяется именем типа T .

Метод Vector::Size

Возвращает количество элементов в текущем объекте Vector.

Синтаксис

virtual property unsigned int Size;

Возвращаемое значение

Количество элементов в текущем объекте Vector.

Конструктор Vector::Vector

Инициализирует новый экземпляр класса Vector.

Синтаксис

Vector();

explicit Vector(unsigned int size);
Vector( unsigned int size, T value);
template <typename U> explicit Vector( const ::std::vector<U>& v);
template <typename U> explicit Vector( std::vector<U>&& v);

Vector( const T * ptr, unsigned int size);
template <size_t N> explicit Vector(const T(&arr)[N]);
template <size_t N> explicit Vector(const std::array<T, N>& a);
explicit Vector(const Array<T>^ arr);

template <typename InIt> Vector(InIt first, InIt last);
Vector(std::initializer_list<T> il);

Параметры

a
Массив std::, который будет использоваться для инициализации вектора.

Arr
Платформа ::Массив , который будет использоваться для инициализации вектора.

Init
Тип коллекции объектов, используемой для инициализации текущего объекта Vector.

Il
Std ::initializer_list объектов типа T , который будет использоваться для инициализации вектора.

N
Количество элементов в коллекции объектов, используемой для инициализации текущего объекта Vector.

size
Количество элементов в объекте Vector.

значение
Значение, используемое для инициализации каждого элемента в текущем объекте Vector.

v
Lvalues и Rvalues to a std::vector , который используется для инициализации текущего вектора.

ptr
Указатель на объект std::vector, используемый для инициализации текущего объекта Vector.

first
Первый элемент в последовательности объектов, используемых для инициализации текущего объекта Vector. Тип первого передается с помощью идеальной пересылки. Дополнительные сведения см. в статье Декларатор ссылки Rvalue: &&.

last
Последний элемент в последовательности объектов, используемых для инициализации текущего объекта Vector. Тип последнего передается с помощью идеальной пересылки. Дополнительные сведения см. в статье Декларатор ссылки Rvalue: &&.

См. также

Коллекции (C++/CX)
Пространство имен платформы
Создание компонентов среды выполнения Windows на C++