生活随笔
收集整理的這篇文章主要介紹了
STL之顺序容器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
順序容器:
vector:數組
list:鏈表
deque:雙端數組
順序容器適配器:
stack:堆棧
queue:隊列
priority_queue:優先級隊列
deque是一個動態數組
deque與vector非常類似;
deque可以在在數組開頭和末尾插入和刪除數據;
1 #include <deque>
2 #include <algorithm>
3
4 deque<
int>
::iterator iElemetnLocater;
5 for(iElementLocater a.begin();
6 iElementLocater !=
a.end();
7 ++
iElemetLocater){
8 //distance函數
9 size_t nOffert =
distance(a.begin(), iElementLocater);
10 cout <<
"a["<<nOffset<<
"]" <<*iElementLocater <<
endl;
11
12 }
list 類模板:
vector向量只能在末尾插入數據;
deque可以在開頭和末尾拆入;
順序容器 STL list類(雙向鏈表)
list是一個模板類;
在list開頭插入元素;
在list末尾插入元素;
在list中間插入元素;
刪除list中的元素;
對list中元素進行反轉和排序;
1 #include <iostream>
2 #include <list>
3
4 using namespace std;
5
6 int main()
7 {
8 std::list<
int>
a;
9 std::list<list>
::iterator iter;
10
11 a.push_front(
4);
//頭插
12 a.push_front(
3);
13 a.push_front(
2);
14 a.push_front(
1);
15 a.push_back(
5);
//尾插
16
17 iter =
a.begin();
18 ++
iter;
19 a.insert(iter,
10);
//通過迭代器位置的改變來插入數據;
20 //在末尾拆入4個20
21 a.insert(a.end(),
4,
20)
22
23
24 for(std::list<
int>::iterator it=
a.begin();
25 it!=a.end();it++
){
26 std::cout << *it <<
std::endl;
27 }
28 return 0;
29 }
30 1 #include <vector>
2 #include <list>
3 #include <deque>
4
5 using namespace std;
6
7 int main()
8 {
9 vector<
string>
s_vec;
10 s_vec.push_back(
"hello");
11 s_vec.push_back(
"c++");
12 s_vec.push_back(
"STL");
13
14 //利用迭代器,vector初始化list
15 list<
string>
slist(s_vec.begin(), s_vec.end());
16
17 const list<
int>::size_type list_size =
64;
18 list<
string> slist(list_size,
"hello";
19
20 list<
int>
I_list;
21
22 vector<
int> ivec;
//默認構造函數
23 ivec.push_back(
1);
24 ivec.push_back(
2);
25 ivec.push_back(
3);
26
27 vector<
int> ivec2(ivec);
//使用ivec初始化ivec2;
28 vector<
int> ivec2(ivec);
//使用ivec初始化ivec2;
29
30 char *words[] = {
"stately",
"plump",
"buck"};
31 size_t words_size =
sizeof(words)/
sizeof(
char*
);
32
33 //利用指針 數組初始化list容器
34 list<
string> words(words, words+
words_size):
35
36 const list<
int>::size_type list_size =
64;
37 list<
string> slist(list_size,
"hello");
//list里面64個hello;
38 list<
int> ilist(list_size);
//ilist默認64個0;
39
40 vector<Foo> a;
//不進行初始化,不用調用Foo的構造函數;
41 vector<Foo> b(
10,
1);
//進行了初始化,而且調用的是帶參數的構造函數;
42
43 vector<vector<
string> > lines;
//vector里面存放vector
44 list<vector<
string> > list_lines;
//list里面存放vector
45
46 //list<int> ilist(ivec); //Error;
47 return 0;
48 }
?
轉載于:https://www.cnblogs.com/chris-cp/p/4513406.html
總結
以上是生活随笔為你收集整理的STL之顺序容器的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。