Share via


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. 公用 ref 類別^

  4. value struct

  5. 公用列舉類別

Vector 類別是 Windows::Foundation::Collections::IVector 介面的 C++ 具體實作。

如果您嘗試在公用傳回值或參數中使用 Vector 類型,則會引發編譯程式錯誤 C3986。 您可以將參數或傳回值類型變更為 Windows::Foundation::Collections::IVector來修正錯誤。 如需詳細資訊,請參閱 集合 (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 中,位於指定索引所識別的專案。
Vector::ReplaceAll 刪除目前 Vector 中的元素,然後從指定的陣列插入元素。
Vector::RemoveAt 從目前向量中刪除指定索引所識別的元素。
Vector::RemoveAtEnd 刪除目前 Vector 結尾處的項目。
Vector::SetAt 在目前 Vector 中,將指定的值指派給由指定的索引所識別的元素。
Vector::Size 傳回目前 Vector 物件中的項目數。

事件

名稱 描述
event Windows::Foundation::Collection::VectorChangedEventHandler<T>^ VectorChanged Vector 變更時發生。

繼承階層架構

Vector

需求

標頭: collection.h

命名空間: Platform::Collections

Vector:: append 方法

在目前 Vector 的最後一個項目之後插入指定的項目。

語法

virtual void Append(T item);

參數

index
要插入 Vector 中的項目。 項目的類型是由 T typename 所定義。

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::beginWindows::Foundation::Collections::end

Vector::GetAt 方法

擷取由指定之索引所識別的目前 Vector 項目。

語法

virtual T GetAt(unsigned int index);

參數

index
以零起始、不帶正負號的整數,在 Vector 物件中指定特別項目。

傳回值

索引參數所指定的專案。 元素類型是由 T typename 所定義。

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);

參數

value
要尋找的項目。

index
如果找到參數 ,則為專案以零起始的索引,否則為 0。

如果專案是 Vector 的第一個專案或找不到專案,則 索引 參數為 0。 如果傳回值為 true,則找到專案且它是第一個項目,否則找不到專案。

傳回值

true 如果找到指定的專案,則為 ;否則為 false

備註

IndexOf 使用 std::find_if 尋找項目。 因此,自訂元素類型應多載 == 和 != 運算子,以啟用 find_if 所需的等號比較。

Vector::InsertAt 方法

將指定的專案插入目前 Vector 中,位於指定索引所識別的專案。

語法

virtual void InsertAt(unsigned int index, T item)

參數

index
以零起始、不帶正負號的整數,在 Vector 物件中指定特別項目。

專案
要插入 Vector 的項目,位於索引指定的專案。 項目的類型是由 T typename 所定義。

Vector::RemoveAt 方法

從目前向量中刪除指定索引所識別的元素。

語法

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 typename 所定義。

Vector::SetAt 方法

在目前 Vector 中,將指定的值指派給由指定的索引所識別的元素。

語法

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

參數

index
以零起始、不帶正負號的整數,在 Vector 物件中指定特別項目。

專案
要指派給指定項目的值。 項目的類型是由 T typename 所定義。

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
將用來初始化 Vector 的 std::array

arr
Platform::Array,將用來初始化向量。

Init
用來初始化目前 Vector 的物件集合類型。

I l
T別物件的 std::initializer_list,將用來初始化 Vector。


用來初始化目前 Vector 之物件集合中的項目數。

size
Vector 中的項目數。

value
用來初始化目前 Vector 中各個項目的值。

v
Lvalues 和 Rvaluesstd::vector,用來初始化目前的 Vector。

ptr
用來初始化目前 Vector 之 std::vector 的指標。

first
用來初始化目前 Vector 之物件序列中的第一個項目。 第一種類型是透過完美的轉送方式傳遞。 如需詳細資訊,請參閱右值參考宣告子:&&

last
用來初始化目前 Vector 之物件序列中的最後一個項目。 最後一種類型是透過完美的轉送方式傳遞。 如需詳細資訊,請參閱右值參考宣告子:&&

另請參閱

集合 (C++/CX)
平臺命名空間
在 C++ 中建立 Windows 執行階段元件