讀書筆記(C ) 順序容器

2021-07-24 08:40:45 字數 2844 閱讀 3231

// 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是最好的選擇,除非你有很好的...