假设我有一些用户定义的复杂结构,比如
struct usrStruct{
double a;
T1 b;
T2 c;
/* and so on...*/
}
它用作 std::vector、std::list 或任何可迭代对象的基本元素。
假设std::vector<usrStruct>
通过迭代器传递给我的函数
template<class InputIterator>
T myFoo( InputIterator first, InputIterator last ){ /*...*/ }.
问:有没有一种标准的方法来覆盖operator*()
, (在 InputIterator
这种情况下std::vector<usrStruct>::iterator
),以便 与成员交互?myFoo
a
即,这样
*first == (*first).a;
因此与?的整个定义正交myFoo
工作usrStruct
谢谢你。