YSTest  PreAlpha_b400_20130424
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
iterator.hpp 文件参考

通用迭代器。 更多...

#include "type_op.hpp"
#include <iterator>
#include <utility>
#include <memory>
iterator.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

class  ystdex::pointer_iterator< _type >
 指针迭代器。 更多...
 
struct  ystdex::pointer_classify< _type >
 指针包装为类类型迭代器。 更多...
 
struct  ystdex::pointer_classify< _type * >
 
class  ystdex::pseudo_iterator< _type, _tIterator, _tTraits >
 伪迭代器。 更多...
 
class  ystdex::transformed_iterator< _tIterator, _fTransformer >
 转换迭代器。 更多...
 
struct  ystdex::indirect_tag
 
class  ystdex::pair_iterator< _tMaster, _tSlave, _tTraits >
 成对迭代器。 更多...
 
class  ystdex::subscriptive_iterator< _tContainer, _type >
 成员下标迭代器。 更多...
 

命名空间

namespace  ystdex
 
namespace  ystdex::iterator_transformation
 迭代转换操作。
 

函数

template<typename _tIn , typename _fPred >
_tIn ystdex::next_if (_tIn i, _fPred f, typename std::iterator_traits< _tIn >::difference_type n=1)
 迭代器指向的值满足条件时取邻接迭代器,否则取原值。
 
template<typename _tIn , typename _type >
_tIn ystdex::next_if_eq (_tIn i, const _type &val, typename std::iterator_traits< _tIn >::difference_type n=1)
 
template<typename _tIterator1 , typename _tIterator2 >
auto ystdex::make_move_iterator_pair (_tIterator1 it1, _tIterator2 it2) -> decltype(std::make_pair(std::make_move_iterator(it1), std::make_move_iterator(it2)))
 取转移迭代器对。
 
template<typename _tRange >
auto ystdex::make_move_iterator_pair (_tRange &c) -> decltype(ystdex::make_move_iterator_pair(begin(c), end(c)))
 取指定序列范围(包含序列容器及内建数组等)的转移迭代器对。
 
template<typename _tIterator , typename _fTransformer >
transformed_iterator< typename
array_ref_decay< _tIterator >
::type, _fTransformer > 
ystdex::make_transform (_tIterator &&i, _fTransformer &&f)
 创建转换迭代器。
 
template<typename _tIterator >
static auto ystdex::iterator_transformation::first (const _tIterator &i) -> decltype(std::addressof(i->first))
 
template<typename _tIterator >
static auto ystdex::iterator_transformation::second (const _tIterator &i) -> decltype(std::addressof(i->second))
 
template<typename _tIterator >
static auto ystdex::iterator_transformation::indirect (const _tIterator &i) -> decltype(*i)
 
template<typename _tIterator >
auto ystdex::operator| (_tIterator &&i, first_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::first< typename array_ref_decay< _tIterator >::type >))
 管道匹配操作符。
 
template<typename _tIterator >
auto ystdex::operator| (_tIterator &&i, second_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::second< typename array_ref_decay< _tIterator >::type >))
 
template<typename _tIterator >
auto ystdex::operator| (_tIterator &&i, indirect_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::indirect< typename array_ref_decay< _tIterator >::type >))
 
template<class _tContainer , typename _type >
bool ystdex::operator== (const subscriptive_iterator< _tContainer, _type > &x, const subscriptive_iterator< _tContainer, _type > &y)
 比较成员下标迭代器的相等性。
 
template<class _tContainer , typename _type >
bool ystdex::operator!= (const subscriptive_iterator< _tContainer, _type > &x, const subscriptive_iterator< _tContainer, _type > &y)
 比较成员下标迭代器的不等性。
 
template<typename _tBi , typename _fPred >
_tBi ystdex::prev_if (_tBi i, _fPred f, typename std::iterator_traits< _tBi >::difference_type n=1)
 迭代器指向的值满足条件时取反向邻接迭代器,否则取原值。
 
template<typename _tBi , typename _type >
_tBi ystdex::prev_if_eq (_tBi i, const _type &val, typename std::iterator_traits< _tBi >::difference_type n=1)
 
template<typename _type >
bool ystdex::operator== (const pointer_iterator< _type > &x, const pointer_iterator< _type > &y)
 
template<typename _type >
bool ystdex::operator!= (const pointer_iterator< _type > &x, const pointer_iterator< _type > &y)
 
template<typename _type , typename _tIterator , typename _tTraits >
bool ystdex::operator== (const pseudo_iterator< _type, _tIterator, _tTraits > &x, const pseudo_iterator< _type, _tIterator, _tTraits > &y)
 
template<typename _type , typename _tIterator , typename _tTraits >
bool ystdex::operator!= (const pseudo_iterator< _type, _tIterator, _tTraits > &x, const pseudo_iterator< _type, _tIterator, _tTraits > &y)
 
template<typename _type , typename _fTransformer >
bool ystdex::operator== (const transformed_iterator< _type, _fTransformer > &x, const transformed_iterator< _type, _fTransformer > &y)
 
template<typename _type , typename _fTransformer >
bool ystdex::operator!= (const transformed_iterator< _type, _fTransformer > &x, const transformed_iterator< _type, _fTransformer > &y)
 
template<typename _tMaster , typename _tSlave >
bool ystdex::operator== (const pair_iterator< _tMaster, _tSlave > &x, const pair_iterator< _tMaster, _tSlave > &y)
 
template<typename _tMaster , typename _tSlave >
bool ystdex::operator!= (const pair_iterator< _tMaster, _tSlave > &x, const pair_iterator< _tMaster, _tSlave > &y)
 

变量

const first_tag ystdex::get_first {}
 操纵子。
 
const first_tag ystdex::get_key {}
 
const second_tag ystdex::get_second {}
 
const second_tag ystdex::get_value {}
 
struct ystdex::indirect_tag ystdex::get_indirect
 

详细描述

通用迭代器。

版本
r2305
作者
FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com
自从
早于 build 189
创建时间:
2011-01-27 23:01:00 +0800
修改时间:
2013-04-22 01:00 +0800
文本编码:
UTF-8
模块名称:
YStandardEx::Iterator

在文件 iterator.hpp 中定义.