63 :
vec(std::begin(cont), std::end(cont)) {}
73 std::make_move_iterator(std::begin(cont)),
74 std::make_move_iterator(std::end(cont))) {}
86 :
vec(std::next(std::begin(cont), start_pos),
87 std::next(std::begin(cont), end_pos)) {}
99 :
vec(std::make_move_iterator(
100 std::next(std::begin(cont), start_pos)),
101 std::make_move_iterator(
102 std::next(std::begin(cont), end_pos))) {}
110 template <
class Iter>
139 for (
const T &item :
vec)
140 tmp.get_vec().push_back(f(item));
154 for (
const T &item :
vec)
156 tmp.
vec.push_back(item);
166 template <
class Cont>
170 std::make_move_iterator(
vec.begin()),
171 std::make_move_iterator(
vec.end()));
180 template <
class Cont>
183 return Cont(
vec.begin(),
vec.end());
193 template <
class Cont>
206 template <
class Cont>
221 template <
class Cont>
222 auto compre(
const Cont &cont,
size_t start_pos,
size_t end_pos)
226 cont, start_pos, end_pos);
237 template <
class Cont>
238 auto compre(Cont &&cont,
size_t start_pos,
size_t end_pos)
242 std::move(cont), start_pos, end_pos);
252 template <
class Iter>
函数式风格的数据流处理容器。
Definition compre.h:48
Comprehension(Cont &&cont)
从容器(右值)构造,移动所有元素。
Definition compre.h:71
Comprehension(const Cont &cont, size_t start_pos, size_t end_pos)
从容器的子区间(左值)构造,拷贝指定范围的元素。
Definition compre.h:85
Comprehension< T > filter(F &&f) const
筛选满足谓词 f 的元素,返回新 Comprehension。
Definition compre.h:151
Comprehension()
默认构造函数,创建一个空 Comprehension。
Definition compre.h:54
Comprehension(Cont &&cont, size_t start_pos, size_t end_pos)
从容器的子区间(右值)构造,移动指定范围的元素。
Definition compre.h:98
Cont make() const
将内部元素拷贝构造到目标容器 Cont 中。
Definition compre.h:181
Comprehension(std::initializer_list< T > init)
从 std::initializer_list 构造。
Definition compre.h:117
auto map(F &&f) const -> Comprehension< decltype(f(vec[0]))>
对每个元素应用函数 f,返回新 Comprehension。
Definition compre.h:136
std::vector< T > & get_vec()
获取内部 vector 的引用。
Definition compre.h:123
Cont to()
将内部元素移动构造到目标容器 Cont 中。
Definition compre.h:167
Comprehension(Iter beg, Iter end)
从迭代器对构造,拷贝 [beg, end) 范围内的元素。
Definition compre.h:111
std::vector< T > vec
内部存储的 std::vector
Definition compre.h:50
Comprehension(const Cont &cont)
从容器(左值)构造,拷贝所有元素。
Definition compre.h:62
auto compre(const Cont &cont) -> Comprehension< typename Cont::value_type >
从容器(左值)创建 Comprehension。
Definition compre.h:194