順序容器型別
vector
deque
list雙向鍊錶
forward_list單項鍊表
array
string
每個容器都定義在乙個標頭檔案中,檔名與型別名相同
list
deque
vector
>
list
>
迭代器
[begin,end)
當begin==end,範圍為空
#include
#include
using
namespace
std;
bool f(vector
::iterator tbegin, vector
::iterator tend, int n)
return
false;
}int main()
; cout
<< f(vec.begin(), vec.end(), 3);
return
0;}
#include
#include
using
namespace
std;
vector
::iterator f(vector
::iterator tbegin, vector
::iterator tend, int n)
cout
<<"未找到" ;//沒有找到,怎麼返回乙個迭代器
}int main()
; cout
<< *f(vec.begin(), vec.end(), 10);
return
0;}
list
lst1;
list
::iterator iter1 = lst1.begin(), iter2 = lst1.end();
while (*iter1<*iter2)
容器的定義和初始化
c c;
c c1=c2;
c c;
c c=;//列表初始化
c c(b,e);//從迭代器b到e內元素的拷貝
c seq(n);//容器大小引數
c seq(n,t);//容器大小引數,顯式的元素初始值
array特殊,具有固定大小
array
::size_type i;//陣列型別包括元素型別和大小
array
a1=;
array
a2=;
a1=a2;
內建陣列不支援拷貝或賦值,array無此限制
型別轉換
list
l;vector
vec(l.begin(),l.end());
assign
assign() 函式要麼將區間[start, end)的元素賦到當前vector,或者賦num個值為val的元素到vector中.這個函式將會清除掉為vector賦值以前的內容.
string &assign(const string &s,int start,int n);把字串s中從start開始的n個字元賦給當前字串
string &assign(const_iterator first,const_itertor last);把first和last迭代器之間的部分賦給字串
list
l;vector
vec;
vec.assign(l.begin(), l.end());
swap
交換2個相同型別容器的內容。
容器大小操作
size()
empty()
max_size()
關係運算子
兩邊的運算物件型別必須是相同型別的容器
或者9.16
bool judge(iter first1, iter last1,iter first2,iter last2)
return
1; }
}
C Primer 筆記 順序容器
將單一元素型別聚集起來成為容器,然後根據位置來儲存和訪問這些元素 vectorivec listslist dequedstr vector 支援快速隨機訪問 list 支援快速插入 刪除 deque 雙端佇列 stack 後進先出 lifo 棧 queue 先進先出 fifo 佇列 priorit...
《C primer》 順序容器
順序容器 vector 支援快速隨機訪問 list 支援快速插入 刪除 deque 雙端佇列 順序容器介面卡 stack 後進先出 lifo 棧 queue 先進先出 fifo 棧 priority queue 有優先順序管理的佇列 容器元素型別必須滿足條件 1.支援賦值運算,2.物件可以賦值 因為...
C primer 順序容器
順序容器 vector deque list 介面卡 根據原始容器型別所提供的操作,通過定義新的操作介面,適應基礎的容器型別。容器元素初始化 cc 預設建構函式 cc n n個值初始化,只適用於順序容器,必須給出缺省建構函式 cc n,t n個t只適用於順序容器,可以不給,但要給出 t t 建構函式...