![]() |
Boost.Range |
std::pair<iterator, iterator>,range_iterator<C>::type 和 range_const_iterator<C>::type 沒有區別。
通常沒有可能也不值得找到一個 const_iterator. 如果要得到一個,用戶可以選擇構造一個 std::pair<const_iterator,const_iterator>
對象。
注意,iterator_range
要比 pair 稍微方便一點,而 sub_range 則可以傳播常量性。
本庫保持比較小是因為它當前的接口可以有更多的用途。如果真的需要更多的功能,它也可以實現。
你應該從接受兩個(或多個)迭代器作為輸入的泛型算法開始。然後使用 Boost.Range 在算法所基於的迭代器之上來構建一個手工版本。請注意,一旦實現了算法的區間版本,就不要再將迭代器版本公開在公有接口上。
雖然我們有討論遞增迭代器,但是不太合適討論這類區間;例如,我們無法確定區間的大小以及區間是否為空,因為我們不能比較這種迭代器。
還應注意,遞增迭代器派生自輸出迭代器,所以也不存在輸出區間。
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)