いくつかのケース++ベクター(ベクター・ポインタ、ポインタのベクトル)に要約ベクトルc

1.標準ライブラリベクトル型
ベクトルは、各オブジェクトは、対応する整数指数を有する、オブジェクトの同じ型のコレクションです。標準ライブラリは、メモリに関連付けられたストレージ要素を管理する責任を負います。それは他のオブジェクトを含めることができますので、我々は、ベクトルコンテナと呼ばれます。コンテナ内のすべてのオブジェクトが同じタイプである必要があります。
ベクトル前に、適切なヘッダファイルをインクルードする必要があります。

#include <ベクトル> 
1。
使用STD ::ベクター; 
Vectorクラスは、テンプレート(クラステンプレート)です。テンプレートを使用して、クラス定義または関数定義、および異なるデータタイプの複数であってもよいです。したがって、我々は、文字列を保存したベクトルオブジェクトを定義する、またはベクトルのint型の値を保存するだけでなく、オブジェクトのベクトルカスタムのクラスまたは種類を保存することができます。私たちは、単にクラステンプレートの定義クラステンプレートを使用するときにどのように理解することができます。追加情報を提供する必要性によって生成されたクラステンプレートの特定の型のオブジェクトからの声明は、情報の種類は、テンプレートに依存します。ベクトルでは、例えば、角括弧、次のクラス名でテンプレートの種類によってタイプを指定するには、保存されたベクトルオブジェクトの種類、説明しなければならない:

ベクトル<整数> IVEC; int型のの// IVEC holdsobjects 
ベクトル<Sales_item> Sales_vec ; // Sales_items保持している
1 
2
注:同じ定義および(intなど見られるように定義された変数、;フロートB);他の変数、目標ベクトルのリストと変数の型を指定するために定義されています。上記で定義された第一、ベクター(INT同等、またはダブル)の一種である、すなわち、int型のオブジェクトのいくつかのタイプを含むベクター、変数命名IVEC(に対応する、B)。変数名の第二の定義はSales_vec、それは要素を保持するタイプSales_itemの目的です。つまり、
ベクトル<タイプ>名称:定義方法
全体として、タイプ、同等のint型、float型:ベクトル<タイプ>。
名前は変数名、Bに対応しています。
なお、以下では確立されている

ベクター<整数> K; //ベクトルの
ベクトル<INT *> KK; // int型ポインタベクトル、後に詳述する適切な
ベクター<整数> * KKKを; //ベクトルベクトルポインタ
ベクトル<INT *> * KKKK; //ベクトルにint型のポインタ(理解比較INT * pは、上記ポインタ変数は、「*」pは代わりにP *のポインタ変数名であり、変数の型はポインタ変数であることを示す)
ベクトルではありませんデータ・タイプが、唯一のテンプレートクラス、データの様々なタイプのうちのいずれかを定義するために使用することができます。それぞれのベクトル型は、保存要素の型を指定します。このように、ベクトル<整数>とベクトル<文字列>のデータ型です。

2.Vectorベクトルいくつかの例が要約されている
** 1)ベクトル<整数> K ; // ベクトル** 
。1つ
の#include <iostreamの>   
する#include <  
名前空間stdを使用。  
INTメイン()   
{   
    ベクトル<整数> K。  
    (INT J = 0であり、j <12; J ++)用   
    {   
        ; //向KK中追加值k.push_back(J)   
    }   
    ため(INT J = 0であり、j <12; J ++)   
    {   
        COUT << K [J] << "「;  
    }   
    システム(「休止」)。  
    0を返します。  
}   
** 2)ベクトル<ベクトル> KK; // INT指针的向量** 
の#include <iostreamの>   
する#include <ベクトル>   
使用して名前空間std。  
INTメイン()   
{   
    ベクトル<INT *> K。  
    int型* P =新しいint型[15]。  
    INT J = 0(のためにあり、j <15。   
        k.push_back(&P [J])。   
    のために(INT I = 0;私は<15; Iは++)   
    {   
        COUT << K * [I] << ""; // INTコンテナ型ベクターのポインタ変数があるため、   
    } //ポインタ値は、従ってあり、*間接アクセスオペレータに必要である   
    [] Pを削除し、   
    システム( "PAUSE");   
    戻り0;   
}   

** 3)ベクトル<整数> * KKK; //ベクトルベクトルポインタ* * 
1。
の#include <iostreamの>   
する#include <ベクトル>   
使用して名前空間STD;   
int型のmain()   
{   
    ベクトル<整数> * K; //ベクトルベクトルポインタ   
    K =新しい新しいベクトル<整数> [5];   
    // INT *等価P =新しいINT [5]、すなわちベクトル<整数> * = KKK新しい新しいベクター<整数> [5。];   
    (I = 0をint型のために、私は<5。  私は++) 
    {   
        (INT J = 0; J <10; J ++)  
        {   
            K [I] .push_back(J); //ポインタ付加画像ベクトル  
        }   
    }   
    (; iが5 <I ++は、I = 0の整数)のための   
    {   
        ため(INT J = 0; J <K [i]は.size(); J ++)   
            COUT << K [i]は[J] << "" ;  
        coutの<<てendl;  
    }   
    [] Kを削除します。  
    システム(「一時停止」)。  
}   

** 4)ベクトル<INT *> * KKKK; // INT指针的向量指针** 
[CPP]図無地コピー
する#include <iostreamの>   
する#include <ベクトル>   
名前空間STDを使用して、  
メインINT()   
{   
    ベクトル<INT *> * K; // INT指针的向量指针   
    K =新しいベクトル<INT *> [5]。  
    int型* P =新しいint型[10]。  
    以下のために(; iは5 <; I = 0 int型I ++)   
        のための(INT J = 0。  J <10; 
        J ++) {  
            P [j]は、jは=。  
            K [i]は.push_back(&P [J])。  
        }   
    }   
    (; iが5 <I ++は、I = 0の整数)のために   
    {   
        ため(INT J = 0であり、j <10; J ++)   
        {   
            COUT << * K [i]は[J] <<」「。  
        }   
        COUT << ENDL。  
    }   
    [] Pを削除します。  
    [] Kを削除します。  
    システム(「一時停止」)。  
}  

  

おすすめ

転載: www.cnblogs.com/CodeWorkerLiMing/p/11221367.html