c++ - STL - 为什么对迭代器使用范围解析运算符

标签 c++ stl

要访问 STL 迭代器,为什么我需要范围解析运算符而不是点运算符?是因为迭代器是静态的,不属于特定的类实例吗?

vector<int>::iterator my_iterator;

而不是

vector<int> numbers;
numbers.iterator;

最佳答案

点和箭头 (->) 运算符用于访问特定于给定实例的所有数据(成员变量、函数)。

范围解析运算符用于访问特定于给定类型而非实例的所有数据(静态成员变量、静态函数、类型)。请注意,成员类型永远不会特定于实例,因此您将始终使用 type::member_type 来访问它们。

关于c++ - STL - 为什么对迭代器使用范围解析运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20221615/

相关文章:

c++ - 类模板可以是函数吗

c++ - 只读结构中数据成员的分配,STL 集中的类

c++ - 使用 STL 算法合并 2 个 vector

c++ - 如何检测 std::map 循环中的最后一次迭代?

c++ - 在基类指针容器中访问派生类对象的正确方法是什么?

c++ - 从 std::binary_function (或 std::unary 函数)继承有什么好处?

android - char*转wchar_t*时如何设置Locale?

c++ - 3d 实时软件渲染器开源

c++ - 计算CRC的C程序

c++ - 删除所有构造函数(或其他函数)的最佳样式?