簡體   English   中英

STL - 為什么使用范圍解析運算符作為迭代器

[英]STL - Why use the scope resolution operator for iterator

要訪問STL迭代器,為什么我需要范圍解析運算符,而不是點運算符? 是因為迭代器是靜態的,並且不屬於特定的類實例嗎?

vector<int>::iterator my_iterator;

並不是

vector<int> numbers;
numbers.iterator;

點和箭頭( -> )運算符用於訪問特定於給定實例的所有數據(成員變量,函數)。

范圍解析運算符用於訪問特定於給定類型的所有數據(靜態成員變量,靜態函數,類型),而不是實例。 請注意,成員類型從不是特定於實例的,因此您始終使用type::member_type來訪問它們。

a::b命名一個類型; ab引用變量。 在您的示例中, my_iterator是變量的名稱, vector<int>::iterator是其類型。

暫無
暫無

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

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