如何最簡單 通俗地理解C 的deque容器?

時間 2021-06-09 23:52:22

1樓:小王同學在積累

一、筆記

二、筆記目錄

② deque與vector區別:

③ deque內部工作原理:

1. deque內部有個中控器,維護每段緩衝區中的內容,緩衝區中存放真實資料。

2. 中控器維護的是每個緩衝區的位址,使得使用deque時像一片連續的記憶體空間。

④ deque容器的迭代器也是支援隨機訪問的。

① 功能描述:deque容器構造。

② 函式原型:

1. dequedeqT; //預設構造形式

2. 建構函式將[beg,end)區間中的元素拷貝給本身。

3. deque(n,elem); //建構函式將n個elem拷貝給本身

4. deque(const deque &deq); //拷貝建構函式

③ deque榮哪個器和vector容器的構造方式幾乎一致,靈活使用即可。

#include

using namespace std;

#include

//deque容器建構函式

void printDeuque(const deque& d) //const 防止進行寫操作,只能進行讀

cout << endl;

}void test01()

printDeuque(d1);

//區間的方式構造

dequed2(d1.begin(),d1.end());

printDeuque(d2);

//n個值的方式構造

dequed3(10,100);

printDeuque(d3);

//拷貝構造

dequed4(d3);

printDeuque(d4);

}int main()

執行結果:

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

100 100 100 100 100 100 100 100 100 100

100 100 100 100 100 100 100 100 100 100

① 功能描述:給deque容器進行賦值。

② 函式原型:

1. deque& operator=(const deque &deq); //過載等號操作符

2. assign(beg, end); //將[beg,end)區間中的資料拷貝賦值給本身。

3. assign(n,elem); //將n個elem拷貝賦值給本身。

③ deque賦值操作與vector相同。

#include

using namespace std;

#include

//deque容器賦值操作

void printDeuque(const deque&d)

cout << endl;

}void test01()

printDeuque(d1);

//operator= 賦值

dequed2;

d2 = d1;

printDeuque(d2);

//assign 賦值

dequed3;

d3.assign(d1.begin(), d1.end());

printDeuque(d3);

dequed4(10,100);

printDeuque(d4);

}int main()

執行結果:

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

100 100 100 100 100 100 100 100 100 100

① 功能描述:對deque容器的大小進行操作。

② 函式原型:

#include

using namespace std;

#include

//deque容器大小操作

void printDeuque(const deque&d)

cout << endl;

}void test01()

printDeuque(d1);

if (d1.empty())

else

//重新指定大小

d1.resize(15, 1); //這裡指定填充值為1,如果沒有第二個引數,預設的填充值為0

printDeuque(d1);

d1.resize(5);

printDeuque(d1);

}int main()

執行結果:

0 1 2 3 4 5 6 7 8 9

d1不為空

d1的大小為:10

0 1 2 3 4 5 6 7 8 9 1 1 1 1 1

0 1 2 3 4

② 函式原型:

#include

using namespace std;

#include

void printDeuque(const deque&d)

cout << endl;

}void test01()

void test02()

void test03()

int main()

執行結果:

200 100 10 20

200 100 10

100 10

200 100 10 20

1000 200 100 10 20

9999 9999 1000 200 100 10 20

9999 9999 1000 200 100 10 20 3 1 2

200 10 20

請按任意鍵繼續. . .

① 功能描述:對deque中的資料的訪問操作。

② 函式原型:

1. at(int idx); //返回索引idx所指的資料

2. operator; //返回索引idx所指的資料

3. front(); //返回容器中第乙個資料元素

4. back(); //返回容器中最後乙個資料元素

③ 除了用迭代器獲取deque容器中元素,和at也可以。

#include

using namespace std;

#include

//deque容器資料訪問

void printDeuque(const deque&d)

cout << endl;

}void test01()

cout << endl;

//通過at方式訪問元素

for (int i = 0; i < d1.size(); i++)

cout << endl;

cout << "第乙個元素為:" << d1.front() << endl;

cout << "最後乙個元素為:" << d1.back() << endl;

}int main()

執行結果:

300 200 100 10 20 30

300 200 100 10 20 30

第乙個元素為:300

最後乙個元素為:30

① 利用演算法實現對deque容器進行排序。

② 演算法:

1. sort(iterator beg, iterator end) //對beg和end區間內元素進行排序

③ sort演算法非常實用,使用時包含標頭檔案algorithm即可。

#include

using namespace std;

#include

#include //標準演算法標頭檔案

//deque容器排序操作

void printDeuque(const deque&d)

cout << endl;

}void test01()

int main()

執行結果:

300 200 100 10 20 30

排序後:

10 20 30 100 200 300

01 筆記--Python [ 整理完 ]

02 筆記--機器視覺 [ 整理完 ]

03 筆記--C++ [整理完]

04 筆記--爬蟲 [整理ing]

01 如何最簡單、通俗地理解C++的注釋?

02 如何最簡單、通俗地理解C++的常量?

03 如何最簡單、通俗地理解C++的變數?

04 如何最簡單、通俗地理解C++的關鍵字?

05 如何最簡單、通俗地理解C++的識別符號?

06 如何最簡單、通俗地理解C++的資料型別?

07 如何最簡單、通俗地理解C++的轉義字元?

08 如何最簡單、通俗地理解C++的資料輸入?

09 如何最簡單、通俗地理解C++的運算子?

10 如何最簡單、通俗地理解C++的程式流程結構?

11 如何最簡單、通俗地理解C++的陣列?

12 如何最簡單、通俗地理解C++的函式?

13 如何最簡單、通俗地理解C++的指標?

14 如何最簡單、通俗地理解C++的結構體?

15 如何最簡單、通俗地理解C++的記憶體四區?

16 如何最簡單、通俗地理解C++的引用?

17 如何最簡單、通俗地理解C++的類和物件?

18 如何最簡單、通俗地理解C++的檔案互動?

19 如何最簡單、通俗地理解C++的模板?

20 如何最簡單、通俗地理解C++的STL?

21 如何最簡單、通俗地理解C++的string容器?

22 如何最簡單、通俗地理解C++的vector容器?

23 如何最簡單、通俗地理解C++的deque容器?

24 如何最簡單、通俗地理解C++的stack容器?

25 如何最簡單、通俗地理解C++的queue容器?

26 如何最簡單、通俗地理解C++的list容器?

27 如何最簡單、通俗地理解C++的set容器?

28 如何最簡單、通俗地理解C++的pair對組?

29 如何最簡單、通俗地理解C++的map容器?

30 如何最簡單、通俗地理解C++的函式物件?

31 如何最簡單、通俗地理解C++的謂詞?

32 如何最簡單、通俗地理解C++的內建函式物件?

33 C++的常用演算法有哪些?

34 C++的常用遍歷演算法有哪些?

35 C++的常用查詢演算法有哪些?

36 C++的常用排序演算法有哪些?

37 C++的常用拷貝和替換演算法有哪些?

38 C++的常用算術生成演算法有哪些?

39 C++的常用集合演算法有哪些?

[C++系列已完結]

( Python、機器視覺、爬蟲……系列筆記,見專欄 )

如何最簡單 通俗地理解C 的結構體?

小王同學在積累 一 筆記 二 筆記目錄 結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別。語法 struct 結構體名 通過結構體建立變數的方式有三種 1 struct 結構體名變數名 2 struct 結構體名變數名 3 定義結構體時順便建立變數 結構體變數利用點.訪問成員 incl...

如何最簡單 通俗地理解Softmax演算法?

老杜 softmax就是soft版本的max,理解了soft的含義就理解softmax了。什麼叫soft版本?我們先看看普通的max,以及普通max hard在什麼地方。比如說三個數x 2,1,5 求max x 小學生都會,答案是5,很簡單.如果以向量的方式表達這個對映關係,也可以表示成max x ...

如何通俗簡單地理解 Inbound Marketing 和 Outbound Marketing

吳嘉陽 簡單一句話,以客戶需求的強烈程度分 主動營銷 inbound marketing 使用者需求相對較高,使用者主動索取產品相關資訊 和被動營銷 outbound marketing 使用者需求相對較低,被動被強推來索取產品資訊 劉延飛 Inbound marketing會慢慢成為marketi...