83 template <
class It1,
class It2>
90 typedef std::pair<
typename It1::value_type,
91 typename It2::value_type>
94 typedef std::pair<
typename It1::reference,
95 typename It2::reference>
135 return it1 == other.it1 || it2 == other.it2;
147 return !(*
this == other);
166 template <
class C1,
class C2>
167 IteratorPair<TiedIterators<typename C1::iterator, typename C2::iterator>>
170 return {{std::begin(c1), std::begin(c2)}, {std::end(c1), std::end(c2)}};
179 template <
class C1,
class C2>
180 IteratorPair<TiedIterators<typename C1::const_iterator, typename C2::const_iterator>>
181 zip(
const C1 &c1,
const C2 &c2)
183 return {{std::begin(c1), std::begin(c2)}, {std::end(c1), std::end(c2)}};
192 template <
class C1,
class C2>
193 IteratorPair<TiedIterators<typename C1::const_iterator, typename C2::iterator>>
196 return {{std::begin(c1), std::begin(c2)}, {std::end(c1), std::end(c2)}};
205 template <
class C1,
class C2>
206 IteratorPair<TiedIterators<typename C1::iterator, typename C2::const_iterator>>
209 return {{std::begin(c1), std::begin(c2)}, {std::end(c1), std::end(c2)}};
bool operator!=(const TiedIterators &other) const
比较是否与另一迭代器不等。
Definition iter.h:145
void pointer
类型别名(不实际使用)
Definition iter.h:93
std::forward_iterator_tag iterator_category
类型别名
Definition iter.h:97
reference operator*() const
对迭代器组解引用。
Definition iter.h:121
std::pair< typename It1::value_type, typename It2::value_type > value_type
类型别名
Definition iter.h:92
TiedIterators & operator++()
将两个迭代器均前进一步。
Definition iter.h:111
bool operator==(const TiedIterators &other) const
比较是否与另一迭代器相等。
Definition iter.h:133
std::ptrdiff_t difference_type
类型别名
Definition iter.h:98
TiedIterators(It1 i1, It2 i2)
接受迭代器组的构造函数。
Definition iter.h:105
std::pair< typename It1::reference, typename It2::reference > reference
类型别名
Definition iter.h:96
IteratorPair< TiedIterators< typename C1::iterator, typename C2::iterator > > zip(C1 &c1, C2 &c2)
将两个容器“拉链”式地绑定在一起,以便同时迭代。
Definition iter.h:168
IteratorPair< Iter > iterpair(Iter beg, Iter end)
工厂函数,构建 IteratorPair。
Definition iter.h:75
存储迭代器对,可以直接范围 for。
Definition iter.h:48
iterator end()
返回超尾迭代器。
Definition iter.h:65
Iter iterator
迭代器类型别名。
Definition iter.h:55
iterator begin()
返回首迭代器。
Definition iter.h:60
IteratorPair(Iter beg, Iter end)
接受迭代器对的构造函数。
Definition iter.h:54