STL1--GeekBand

順序容器,它將單一類型元素聚集起來成為容器,然后根據(jù)位置來存儲和訪問這些元素,這就是順序容器。標(biāo)準(zhǔn)庫里定義了三種類型:vector(支持 快速隨機(jī)訪問)、list(支持快速插入、刪除)、deque(雙端隊(duì)列)容器只定義了少量操作,大多數(shù)額外的操作由算法庫提供。容器內(nèi)元素的類型約 束;1、元素類型必須支持賦值運(yùn)算;2、元素類型的對象必須可以復(fù)制。這是容器元素類型的最低要求,如果想支持一些其他特殊要求,則必須具備相關(guān)的性質(zhì)。
可以定義容器的容器vector< vector<int> > lines;//必須使用"> >"中間的空格,否則會出現(xiàn)變異錯(cuò)誤
迭代器運(yùn)算:
  關(guān)系操作符只適用于vector和deque容器,它們可以根據(jù)元素位置直接有效地訪問指定的容器元素。而list容器的迭代器既不支持算術(shù)運(yùn) 算(加法或者減法),也不支持關(guān)系運(yùn)算(<=,<,>=,>),它只提供前置和后置的自增、自減運(yùn)算以及相等(不等)運(yùn)算。
迭代器范圍:
  c++使用一對迭代器標(biāo)記迭代器范圍,通常命名為first和last或beg和end。該范圍內(nèi)的元素包括迭代器first指向的元素,以及從first開始一直到迭代器last指向的位置之前的所有元素,此類元素范圍稱為左閉合區(qū)間[first,last)。
順序容器的操作:
  在容器中添加元素;在容器中刪除元素;設(shè)置容器大??;獲取容器內(nèi)的第一個(gè)和最后一個(gè)元素。對于begin()、end()、rbegin()、 rend()四個(gè)操作,均有const版本。如果容器時(shí)const,則其返回類型要加上const_前綴。c.push_back(t) 在容器c的尾部添加值為t的元素,返回void類型。c.push_front(t) 在容器c的前端添加值為t的元素,返回void類型。但是只有l(wèi)ist和deque具有這樣的性質(zhì)。
//容器的順序遍歷vector<int>::reverse_iterator iterReverse=vect.rbegin();//定義反向迭代器while(iterReverse!=vect.rend()){
cout<<iterReverse<<endl; iterReverse++;
}
vector<int>::iterator iter = vect.begin();//定義正向迭代器while(iter!=vect.end())
{
cout<<
iter<<endl; iter++;
}
在容器中的指定位置添加元素:使用insert函數(shù):由于迭代器可能指向超出容器末端的下一位置沒這事一個(gè)不存在的元素,因此insert函數(shù)是在其指向位置之前而非其后插入元素。mylist.insert(iter,element);

/獲取中心位置迭代器,需要注意的list不允許如下的迭代器的加法
vector<int>::iterator middle=vectCpy.begin()+vect.size()/2;
vectCpy.insert(middle,1001);//在中間位置添加一個(gè)元素

vectCpy.insert(vectCpy.begin(),10,9);//在第一個(gè)元素后面添加10個(gè)初值為9的元素
int num[3]={555,666,777};
vectCpy.insert(vectCpy.end(),num,num+3);//在vectCpy后面加入一段來自num數(shù)組里的元素
vectCpy.insert(vectCpy.end(),vect.begin(),vect.end());//在vectCpy后加入一段來自迭代器對間的元素
添加元素可能會導(dǎo)致某些或全部迭代器失效,假設(shè)所有迭代器失效是最安全的做法。不要存儲end操作返回的迭代器,為了避免存儲end迭代器,可以在每次做完插入運(yùn)算重新計(jì)算end迭代器值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容