這個部分和 vector 幾乎一樣
如下**:
1 #include 2 #include 3列印結果:4using
namespace
std;56
intmain()718
19 deqint_a.at(0) = 666
;20 deqint_a[1] = 888
;21 cout << "
用 .at 和下標操作符進行修改後 deqint_a 中的元素:
"<
22for (unsigned int i = 0; i < deqint_a.size(); i++)
2326
27return0;
28 }
也可以對普通變數進行賦值,如下**:
1 #include 2 #include 3列印結果:4using
namespace
std;56
intmain()734
35//
將值賦值回首位元素的引用
36 cout << "
將收尾的值各加 1 用首位元素的引用賦值回去
"<
37 int_3++;
38 int_4++;
39 deqint_a.front() =int_3;
40 deqint_a.back() =int_4;
41for (int i = 0; i < deqint_a.size(); i++)
4245
46return0;
47 }
看如下**示例:
1 #include 2 #include 3列印內容:4using
namespace
std;56
intmain()7;
9 deque deqint_a(test, test + 4
);10
11//
deque.begin()
12 cout << "
使用迭代器 begin() 遍歷容器
"<
13 deque::iterator it_begin = deqint_a.begin(); //
獲得容器中第乙個元素的位址
14for (; it_begin != deqint_a.end(); it_begin++)
1519
20//
deque.rbegin()
21 cout << "
\n\n使用迭代器 rbegin() 遍歷容器
"<
22 deque::reverse_iterator it_rbegin = deqint_a.rbegin(); //
注意迭代器型別是 reverse_iterator,deqint_a.rbegin()返回的是末尾位址
23for (; it_rbegin!=deqint_a.rend(); it_rbegin++) //
reverse_iterator型別++ 是像首位址移動,deqint_a.rend()返回的是首位址
2428
29//
deque.cbegin()
30 cout << "
\n\n使用迭代器 cbegin() 遍歷容器
"<
31 deque::const_iterator it_cbegin = deqint_a.cbegin(); //
注意迭代器型別是 const_iterator
32for (; it_cbegin!=deqint_a.cend(); it_cbegin++)
3337
38return0;
39 }
STL容器 deque實現
vector是單向開口的連續線性空間,deque則是一種雙向開口的連續線性空間,可以在頭尾兩端分別做元素的插入和刪除操作。vector雖然從技術上也可以實現對頭尾兩端進行操作,但由於vector的底層實現特點的原因,其頭部操作效率奇差,故stl沒有為vector實現這一功能。deque和vector...
STL通用容器之 deque 容器
1.5deque容器 deque容器為乙個給定型別的元素進行線性處理,就如向量,它能夠快速地隨機進入任乙個元素,並且能夠高效地 入和刪除容器的尾部元素。但它與vector不同,deque能支援高效插入和刪除容器的頭部元素,也叫做雙端佇列.1 建構函式 deque 建立乙個空deque deque i...
stl之序列容器 deque
相比於vector,deque是一種雙向開口的連續線性空間,可以在頭尾兩端分別做元素的插入和刪除操作。這也決定了其更賦值的容器結構。deque內部維護了start和finish 節點,用於雙端的插入和刪除 map,一塊連續空間,其每個元素都是個指標,指向乙個節點。其指向的節點中有四個元素 cur f...