簡體   English   中英

為什么我們需要使用std :: vector :: pointer來訪問元素?

[英]Why do we need to use std::vector::pointer to access elements?

通常我們可以使用向量數組訪問器來訪問元素並修改元素,為什么我們需要指針?

http://msdn.microsoft.com/en-us/library/7e4tx21z(VS.71).aspx

std::vector便利類型為typedef命名pointer的存在與value_typereferenceallocator_typesize_type等無數其他typedef的存在沒有區別。您可以在此處找到完整列表。 這些別名在常規設置中非常有用。 假設您正在編寫一個接受一些容器的泛型函數,並且想要創建一個T*類型的實例,其中該容器包含T類型的對象。 對於std::vector (例如,通用V型)特殊化(可能也適用於其他一系列STL容器),您可以將其作為類型名typename V::value_type *或更簡單地作為typename V::pointer

如果您認為沒有必要在std::vector輸入pointer類型,那不是必須的。

vector可以看作是一個托管的,動態大小的數組,它支持數組可以執行的所有有意義的操作,即使它具有兼容的內存布局並且在許多情況下也可以用作數組。

如果可以通過指針訪問數組中的元素,則它也應該在vector可行。

pointer類型是T *的簡化,因為vector是模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM