C ++でのベクトルコンテナの使用

ベクトルコンテナの説明:

ベクターはベクタータイプであり、C ++ STLアルゴリズムの重要なメンバーです。ベクターを使用する場合は、ヘッダーファイルをインクルードする必要があります:#include <vector>

 

1.ベクトルコンテナの初期化:vector <T> a; // Tはコンテナ内の要素の変数タイプであり、任意の有効なデータ型にすることができます。aは変数名です。

(1)vector <int> a; //空のベクトルコンテナを定義します。その内部データ要素のタイプは整数です。

(2)vector <int> a(10); //サイズ10のベクトルコンテナを定義します。その内部データ要素のタイプは整数ですが、10個の整数要素の値は不明です。

(3)vector <int> a(10,1); //サイズ10のベクトルコンテナを定義します。その内部データ要素のタイプは整数ですが、10個の整数要素の値は1です。

(4)vector <int> a(b); // bベクトルを使用してベクトルを作成し、bベクトルの値をベクトルにコピーします

(5)vector <int> a(b.begin()、b.begin()+ n); //ベクトルbの値を0番目の要素からn番目の要素(合計n個の要素)にコピーします。ベクトル

(6)int b [10] = {1,3,5,7,9,6,10,15,12,33};

          vector <int> a(b、b + 7); //配列から要素を取得し、配列bの0番目から6番目の要素(合計7つの要素)をベクトルにコピーします

 

2.ベクトルコンテナの一般的な方法

(1)a.push_back(n); //ベクトルの最後の要素の後に要素を挿入します。その値はnです。

(2)a.pop_back(); //ベクトルの最後の要素の後の要素を削除します

(3)a.clear(); //ベクトル内のすべての要素をクリアします

(4)a.size(); //ベクトル内の要素の数を返します

(5)a.back(); //ベクトルの最後の要素を返す

(6)a.front(); //ベクトルの最初の要素を返します

(7)a.erase(a.begin()+ 5); //ベクトルの添え字5の要素を削除します

(8)a.erase(a.begin()+ 2、a.begin()+ 4); //ベクトルの添え字2から添え字3までの2つの要素を削除します

(9)a.empty(); //ベクトルが空かどうかを判断し、空の場合はtrueを返し、空でない場合はfalseを返します

(10)a.assign(b。begin()、b.begin()+ 3); // bはベクトルであり、b添え字0から添え字2の要素をベクトルに割り当てます。

(11)a.assign(4,2); //ベクトルには4つの要素のみが含まれ、各要素の値は2です。

(12)a。insert(a。begin()+ 1,5); // aが1、2、3、4、およびなど、ベクトルの添え字が1である位置に値5を挿入します。 1要素を挿入した後、5、2、3、4

(13)a.insert(a.begin()+ 1,3,5); //ベクトルの添え字が1で、それらの値がすべて5である位置から3つの数値を挿入します(例:要素を挿入した後は1、2、3、4、1、5、5、5、2、3、4です

(14)a。swap(b); // bはベクトルであり、aベクトルの要素とbベクトルの要素は全体として交換されます。

3.イテレータートラバーサル:コンテナータイプ<変数タイプ> ::イテレーター名;

例:vector <int> :: iterator it;

       for(it = a.begin(); it!= a.end(); it ++)

       cout << * it << '';

4.ベクトルの一般的な方法の操作例

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    //定义一个空的int型向量容器
    vector<int> a;
    //从向量容器尾部插入三个值
    a.push_back(5);
    a.push_back(8);
    a.push_back(10);
    //定义一个int类型迭代器
    vector<int>::iterator it;
    //通过迭代器遍历输出向量a
    cout<<"a:";
    for(it=a.begin();it!=a.end();it++)
    cout<<*it<<" ";
    cout<<endl;
    //删除尾部最后一个元素
    a.pop_back();
    //通过迭代器遍历输出删除尾部元素后的向量a
    cout<<"a:";
    for(it=a.begin();it!=a.end();it++)
    cout<<*it<<" ";
    cout<<endl;
    //输出向量a的元素个数
    cout<<"a.size()="<<a.size()<<endl;
    //清空向量a
    a.clear();
    //再次输出向量a的元素个数
    cout<<"a.size()="<<a.size()<<endl;
    //循环添加元素
    for (int i = 0; i <= 5; i++)
    a.push_back(i);
    //通过迭代器遍历输出向量a
    cout<<"a:";
    for(it=a.begin();it!=a.end();it++)
    cout<<*it<<" ";
    cout<<endl;
    //删除a向量中下标为2的到下标为3的2个元素
    a.erase(a.begin()+2,a.begin()+4);
    //通过迭代器遍历输出向量a
    cout<<"a:";
    for(it=a.begin();it!=a.end();it++)
    cout<<*it<<" ";
    cout<<endl;
    //在a向量的下标为1的位置插入数值9
    a.insert(a.begin()+1,9);
    //通过迭代器遍历输出向量a
    cout<<"a:";
    for(it=a.begin();it!=a.end();it++)
    cout<<*it<<" ";
    cout<<endl;
    //在a向量的下标为3的位置起插入3个数,其值都为2
    a.insert(a.begin()+3,3,2);
    //通过迭代器遍历输出向量a
    cout<<"a:";
    for(it=a.begin();it!=a.end();it++)
    cout<<*it<<" ";
    cout<<endl;
    //删除向量a中下标为5的元素
    a.erase(a.begin()+5);
    //通过迭代器遍历输出向量a
    cout<<"a:";
    for(it=a.begin();it!=a.end();it++)
    cout<<*it<<" ";
    cout<<endl;
    //判断向量a是否为空
    if(a.empty())
    cout << "Is empty" << endl; 
    else 
    cout << "Not empty" << endl;
    return 0;
}

结果:
a:5 8 10 
a:5 8
a.size()=2
a.size()=0
a:0 1 2 3 4 5
a:0 1 4 5
a:0 9 1 4 5
a:0 9 1 2 2 2 4 5
a:0 9 1 2 2 4 5
Not empty

 

 

おすすめ

転載: blog.csdn.net/weixin_51964667/article/details/112982317