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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++标准库:使用std_list作为链表

發布時間:2025/6/15 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++标准库:使用std_list作为链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • C++標準庫
  • std::list
  • 容器
  • 算法
  • 鏈表

摘要:本文是“C++標準庫導引系列”的一部分。std::list可能在許多時候被人們忘記,我自己就似乎忘記了這容器,當我在寫這個系列的文章的時候,我意識到原來std::list有時是更好的選擇。std::list提供一個鏈表的實現,它是基于結點的容器,同時它也提供了許多標準算法的特殊版本,因為此時有更好的方法。

我們已經寫了這個系列的好幾篇文章了,本文跟之前的文章結構類似,首先給出一個基本的使用。由于std::list提供許多自定義的算法,所以本文也會把這一點體現出來。下面從基本的使用開始,為了使用std::list我們只需要如下:

#include<list>
//定義一個空的std::list容器
std::list<int>?list;

//定義含有n個int()的容器
std::list<int>?linst(n);

//產生一個list,并從迭代器中讀取內容
std::list<int>?list(begin, end);

?

當我們已經有一個std::list在這里的時候,我們需要對它進行操作,相對容器而言它的基本操作就是插入與刪除元素,同時提供一些額外的操作諸如排序或合并等等。這些操作std::list都存在,但它有自己的優勢,它往往有指針來完成操作,而不是簡單的復制。

#include<list>
class?Type;
std::list<Type>?list;

//我們需要指定一個位置,因為std::list不如std::set會自動確定位置
Type value;
list.insert(list.begin(), value);

Type array[]={12, 12, 43, 87};
const?size_t?array_size=sizeof(array)/sizeof(array[0]);
list.insert(list.end(), array, array+array_size);

//把數據追加到容器最后
list.push_back(value);
//把數據追加到容器頭部,這沒有什么性能問題
list.push_front(value);

//從表的尾或頭刪除數據
list.pop_back();
list.pop_front();

?

上面的代碼對于大部分容器來說都是常見的,但是std::list提供的特殊成員函數我們也要強調,下面就是這個特殊的函數,存在sort、splice、unique和merge算法。

//對表內的元素進行排序
list.sort();
//把連續相等的元素刪除,留下唯一的值
list.unique();

std::list<int>?list_2;
//把list中的元素拼接到list_2
list_2.splice(list_2.begin(), list);
//還可以有選擇地拼接
list_2.splice(list_2.begin(), list, pos);//pos是list的一個迭代器

//merge與splice算法很相似,但它合并兩個已序的容器
//merge算法把兩個已序的容器合并,并且保證合并后也是已序
list.sort();
list_2.sort();
list_2.merge(list);
list_2.merge(list, op);//op是一個比較仿函數

?

本系列文章只是作為一個導引,所以并沒有太多的細節,但作為一個示例也希望激發大家學習和使用標準庫。C++在中國的現況很讓人擔心,大家普遍把C++當作C來使用,基本沒有使用STL的意識,在C++標準出來10年之后今天還是如此,讓我們很擔心。

軟件設計就是不斷重用的過程,同時也是一個不斷重構的過程

總結

以上是生活随笔為你收集整理的C++标准库:使用std_list作为链表的全部內容,希望文章能夠幫你解決所遇到的問題。

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