vector: 向量容器,動態數組,類模板 定義和初始化:
vector<T> v1; //v1是空vector,元素類型是T類型,執行默認初始化,int為0,string為空串vector<T> v2(v1); //v2中包含有v1所有元素的副本vector<T> v3(n,val); //v3包含了n個重復的元素,每個元素的值都是valvector<T> v4(n); //v4包含了n個重復的執行了值初始化的對象vector<T> v5{a,b,c,...} //以大括號中的元素初始化vector中的操作
v.push_back(val) //向v的末端添加一個值為val的元素v.pop_back() //刪除最后一個元素v.empty() //如果v不含任何元素,返回true,否則返回falsev.size() //返回v中元素個數,類型為vector<T>::size_typev1==v2 //v1等于v2僅當他們的元素個素相等,以及各位置所對應的元素的值相等<,<=,>,>= //以字典序進行比較v[i] //通過下標訪問v中第i個元素,不能用此添加,如果v為空就沒有下標v.erase(iterator position) //刪除指定位置的元素v.erase(iterator begin,iterator end) //刪除指定范圍的元素v.insert(it,val) //在迭代器it前插入一個值為val的元素迭代器:iterator
C++ STL 中各容器都有相應類型的iterator;一般使用iterator來訪問容器中的元素。iterator的聲明方式
例:string:: iterator it;vector<T>:: iterator it;學習代碼
#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ vector<int> v; v.push_back(50); v.push_back(2991); v.push_back(23); v.push_back(9999); cout << "向量v里面的數據:" << endl; vector<int>::iterator i = v.begin(); while (i != v.end()) { cout << *i << endl; ++i; } vector<int>::iterator iElement = find(v.begin(), v.end(),2991);//find()包含在algorithm頭文件中 if (iElement != v.end()) { int nPosition = distance(v.begin(), iElement); //distance()包含在algorithm頭文件中 cout << "Value" << *iElement << endl; cout << "nPosition" << nPosition << endl; } getchar(); return 0;}新聞熱點
疑難解答
圖片精選