**c++stlシーケンスコンテナ:begin(),end()とfront(),back()の区別と使用**

1636 ワード

0.begin()、end()、front()、back()関数のプロトタイプbegin関数:関数プロトタイプ:iterator begin()const_iterator begin(); 機能:現在のvectorコンテナの開始要素の反復器を返します.
end関数:関数プロトタイプ:iterator end()const_iterator end(); 機能:現在のvectorコンテナの末尾要素の反復器を返します.
front関数front関数:関数プロトタイプ:reference front()reference front()const_reference front(); 機能:現在のvectorコンテナの開始要素の参照を返します.
back関数back関数:関数プロトタイプ:reference back()const_reference back(); 機能:現在のvectorコンテナの末尾要素の参照を返します.
以上の4つの関数はforwardを除きます.Listコンテナはback以外はサポートされておらず、他の順序のコンテナはサポートされています.1,c.begin()およびc.end()関数は、コンテナcのヘッダ要素の反復器を返し、c.front()およびc.back()は、コンテナのヘッダ要素の参照を返します.反復器はポインタのようなものです.実際、C++のポインタも反復器です.しかし、反復器はポインタだけではないので、アドレス値を持っているとは思えません.たとえば、配列インデックスは、反復器とも考えられます.プログラムは反復器を変数として作成することができます.STLコンテナクラスは、特定のタイプのデータを使用するために反復器を作成することができます.ポインタとして、*オペレータクラスを使用してデータを取得できる必要があります.++などの他の数学オペレータも使用できます.通常、++オペレータは、コンテナ内の次のオブジェクトにアクセスするために反復器をインクリメントするために使用されます.c.front()およびc.back()の場合、ヘッダー要素の参照が返されます.例えば:[cpp]view plain copy print?コード上でコードシートを見て私のコードシートに派生します
include
include
using namespace std; int main() { vector v1; vector::iterator iter1; vector::iterator iter2; v1.push_back(‘m’); v1.push_back(‘n’); v1.push_back(‘o’); v1.push_back(‘p’);
cout << "v1.front() = " << v1.front() << endl;  
cout << "v1.back() = " << v1.back() << endl;  

iter1 = v1.begin();  
cout << *iter1 << endl;  
iter2 = v1.end()-1; //  v1.end()                ,            
                    //      :v1.end() - 1;  
cout << *iter2 << endl;  
return 0;  

}"`出力結果:v 1.front()=mv 1.back()=pm p