flattened2d

[tls.flattened2d]

クラス・テンプレート flattened2d は、コンテナーのフラット化されたビューを提供するアダプターです。


// <oneapi/tbb/enumerable_thread_specific.h> ヘッダーで定義 

namespace oneapi { 
namespace tbb {  
    template<typename Container> class flattened2d { 
    public:             
        // Basic types 
        using size_type = /* implementation-defined */; 
        using difference_type = /* implementation-defined */; 
        using allocator_type = /* implementation-defined */; 
        using value_type = /* implementation-defined */; 
        using reference = /* implementation-defined */; 
        using const_reference = /* implementation-defined */; 
        using pointer = /* implementation-defined */; 
        using const_pointer = /* implementation-defined */; 
 
        using iterator = /* implementation-defined */; 
        using const_iterator = /* implementation-defined */; 
 
        explicit flattened2d( const Container& c ); 

        flattened2d( const Container& c, 
                      typename Container::const_iterator first, 
                      typename Container::const_iterator last ); 

        iterator begin(); 
        iterator end(); 
        const_iterator begin() const; 
        const_iterator end() const; 

        size_type size() const; 
    }; 

    template <typename Container> 
    flattened2d<Container> flatten2d(const Container &c); 

    template <typename Container> 
    flattened2d<Container> flatten2d( 
        const Container &c, 
        const typename Container::const_iterator first, 
        const typename Container::const_iterator last); 

} // namespace tbb 
} // namespace oneapi

要件:

  • Container タイプは、[container.requirements.general] ISO C++ 標準のコンテナーの要件を満たしている必要があります。

begin() から end() までを反復すると、内部コンテナーのすべての要素が参照されます。クラス・テンプレートは前方反復のみをサポートします。

ユーティリティー関数 flatten2d は、指定されたコンテナーから flattened2d オブジェクトを作成します。

メンバー関数

explicit flattened2d(const Container &c)

外部コンテナー c に含まれる内部コンテナーの要素のシーケンスを表す flattened2d を構築します。

安全性: これらの操作は、同じ flattened2d で同時に呼び出してはなりません。

flattened2d(const Container &c, typename Container::const_iterator first, typename Container::const_iterator last)

コンテナー c の半開区間 [first, last) のコンテナー内の要素のシーケンスを表わす flattened2d を構築します。

安全性: これらの操作は、同じ flattened2d で同時に呼び出してはなりません。

size_type size() const

flattened2d で参照できるコンテナーの合計サイズを返します。

安全性: これらの操作は、同じ flattened2d で同時に呼び出すことができます。

iterator begin()

ローカルコピーのセットの先頭を示す iterator を返します。

iterator end()

ローカルコピーのセットの最後を示す iterator を返します。

const_iterator begin() const

ローカルコピーのセットの先頭を示す const_iterator を返します。

const_iterator end() const

ローカルコピーのセットの最後を示す const_iterator を返します。

非メンバー関数

template<typename Container>
flattened2d<Container> flatten2d(const Container &c, const typename Container::const_iterator b, const typename Container::const_iterator e)

コンテナー c の半開区間 [b, e) の要素を横断するイテレーターを提供する flattened2d オブジェクトを構築して返します。

template<typename Container>
flattened2d(const Container &c)

コンテナー c のすべての要素を横断するイテレーターを提供する flattened2d を構築して返します。