ベクトルコンテナの説明:
ベクターはベクタータイプであり、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