要访问 STL 迭代器,为什么我需要范围解析运算符而不是点运算符?是因为迭代器是静态的,不属于特定的类实例吗?
vector<int>::iterator my_iterator;
而不是
vector<int> numbers;
numbers.iterator;
最佳答案
点和箭头 (->
) 运算符用于访问特定于给定实例的所有数据(成员变量、函数)。
范围解析运算符用于访问特定于给定类型而非实例的所有数据(静态成员变量、静态函数、类型)。请注意,成员类型永远不会特定于实例,因此您将始终使用 type::member_type
来访问它们。
关于c++ - STL - 为什么对迭代器使用范围解析运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20221615/