// 9.1 順序容器的定義
//表 9 - 1 順序容器
vector
//支援快速隨機訪問
list
//支援快速插入/刪除
deque
//雙端佇列
//順序容器介面卡
stack
//lifo
queue
//lifo
priority_queue //有優先順序管理的佇列
// 9.1.1 容器元素的初始化
//表 9 - 2 容器建構函式
cc;c c(c2);
c c(b,e);
c c(n,t);
c c(n);
//example
//初始化位一段元素副本
list
slist(svec.begin(),svec.end);
vector
mid = svec.begin() + svec.end()/2;
deque
front(svec.begin(),mid);
char *words = ;
int wordsize = sizeof(words)/sizeof(char *);
list
words2(words,words + wordsize);
//分配和初始化指定數目的元素
list
str(64,"***");
list
ilist(64) //64個數每個都是0;
extern
unsigned get_word_count(const
string &file_name);
vector
svec(get_word_count("***")) //只指定容器大小
// 9.1.2 容器內元素的型別約束
/*容器元素型別必須滿足一下兩個約束
~元素型別必須支援賦值運算
~元素型別的物件必須可以複製
*/// 9.2 迭代器和迭代器範圍
/*表 9 - 3 常用迭代器運算
*iter
iter->mem
++iter
iter++
iter1 == iter2
iter1 != iter2
*//*
表 9 - 4 vector and deque 型別迭代器支援的操作
iter + n
iter - n;
iter1 += iter2
iter1 -= iter2
iter1 - iter2
> >= < <=
*/// 9.3 順訊容器的操作
/*表 9 - 5 容器定義的型別別名
size_type
iterator
const_iterator
reverse_iterator
const_reverse_iterator
difference_type
value_type
reference
const_reference
*//*
表 9 - 6 容器的begin和end操作
c.begin()
c.end()
c.rbegin()
c.rend()
*/// 在順序容器中新增元素
string str;
while(cin >> str)
c.push_back(str);
/*表 9 - 7 在順序容器中新增元素的操作
c.push_back(t)
c.push_front(t)
c.insert(p,t)
c.insert(p,n,t) //在迭代器p所指向的元素前面插入n個值為t的新元素,返回void型別
c.insert(p,b,e) //在迭代器p所指向的元素前面插入有迭代器b和e標記範圍內的元素
*/list
lst
list
::iterator iter = lst.begin();
while(cin >> word)
iter = lst.isert(iter,word) //same as push_front
string str = ;
slist.insert(slist.end(),str,str + 4);
list
::iterator iter = slist.begin();
slist.insert(iter,str + 2,str + 4);
// 容器大小的操作
/*表 9 - 8 順序容器的大小操作
c.size()
c.max_size()
c.empty()
c.resize(n)
c.resize(n,t)
*//*
表 9 - 9 訪問順序容器內元素的操作
c.back()
c.front()
c[n]
c.at(n)
*//*
表 9 - 10 刪除順序容器內元素的操作
c.erase(p)
c.erase(b,e)
c.clear();
c.pop_back()
c.popfront()
*//*
表 9 - 11 順序容器的賦值操作
c1 = c2
c1.swap(c2)
c.assign(b,e) // b,e不指向容器c內的元素
c.assign(n,t)
*/
C 讀書筆記 順序容器
1 順序容器包括 vector,list,deque 2 接受容器大小做形參的建構函式只適用於順序容器,而關聯容器不支援這種初始化。3 作為容器元素型別必須滿足以下兩個約束 一 元素型別必須支援賦值運算。二 元素型別的物件必須可以複製。上面的兩條是最低限度的元素型別約束。除了引用型別外,所有內建或復...
c 讀書筆記(順序容器)
1 順序容器包括 vector,list,deque 2 接受容器大小做形參的建構函式只適用於順序容器,而關聯容器不支援這種初始化。3 作為容器元素型別必須滿足以下兩個約束 一 元素型別必須支援賦值運算。二 元素型別的物件必須可以複製。上面的兩條是最低限度的元素型別約束。除了引用型別外,所有內建或復...
《C Primer》讀書筆記 第9章 順序容器
順序容器型別 vector 可變大小陣列 deque 雙端佇列 list 雙向列表 forward list 單向列表 c 11新增 array 固定大小陣列 c 11新增 string 與vector相似的容器,但專門用於儲存字元 順序容器選取原則 通常選用vector是最好的選擇,除非你有很好的...