3

のアイテムをどのように反復処理しますboost::shared_arrayか? それを実行してget()、生のポインタをイテレータとして使用しますか?

4

2 に答える 2

3

すでにブーストを使用しているため、おそらく次のようになります。

#include <boost/shared_array.hpp>
#include <boost/range.hpp>
#include <iostream>

int main()
{
    boost::shared_array<int> arr(new int[10]());

    int* ptr = arr.get();
    for (int i : boost::make_iterator_range(ptr, ptr+10))
    {
        std::cout << i << ',';
    }
}

いずれにせよ、配列のサイズを独自に予約する必要があります。

于 2013-03-13T09:01:38.947 に答える
2

を作成する前に配列を割り当てる必要があるという事実によって、配列のサイズを既に知っているのを見て、boost::shared_arrayそれを反復する唯一の方法は、通常のforループを使用operator[i]してから、 onを使用しboost::shared_arrayて要素を取得することです。

于 2013-03-13T08:54:06.047 に答える