日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL之顺序容器

發布時間:2025/3/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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之顺序容器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。