Boost.Range

FAQ

  1. 為什麼對於 std::pair<iterator, iterator>range_iterator<C>::typerange_const_iterator<C>::type 沒有區別。
  2. 通常沒有可能也不值得找到一個 const_iterator. 如果要得到一個,用戶可以選擇構造一個 std::pair<const_iterator,const_iterator> 對象。

    注意,iterator_range 要比 pair 稍微方便一點,而 sub_range 則可以傳播常量性。

  3. 為什麼不提供更多的類型或函數?

    本庫保持比較小是因為它當前的接口可以有更多的用途。如果真的需要更多的功能,它也可以實現。

  4. 我如何實現使用區間的泛型算法?

    你應該從接受兩個(或多個)迭代器作為輸入的泛型算法開始。然後使用 Boost.Range 在算法所基於的迭代器之上來構建一個手工版本。請注意,一旦實現了算法的區間版本,就不要再將迭代器版本公開在公有接口上。

  5. 為什麼沒有遞增區間的概念?

    雖然我們有討論遞增迭代器,但是不太合適討論這類區間;例如,我們無法確定區間的大小以及區間是否為空,因為我們不能比較這種迭代器。

    還應注意,遞增迭代器派生自輸出迭代器,所以也不存在輸出區間。


© Copyright Thorsten Ottosen 2008.

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)