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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ list (tcy)

發(fā)布時(shí)間:2024/1/18 c/c++ 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ list (tcy) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.1.說明:std::list是順序容器是雙向鏈表;提供雙向迭代功能,但空間效率較低雙向鏈表元素都有一指針指向后一元素,也有一指針指向前一個(gè)元素支持從容器中任何位置插入和刪除元素。不支持快速隨機(jī)訪問。添加,刪除和移動(dòng)列表中或多個(gè)列表中的元素不會(huì)使迭代器或引用無效。僅當(dāng)刪除相應(yīng)的元素時(shí),迭代器才無效。1.2.注意:不支持使用下標(biāo)隨機(jī)存取元素

1.3.函數(shù):

函數(shù)實(shí)例說明
構(gòu)造函數(shù)??
operator=??
assign(lst.begin(),lst.end())?分配
get_allocator?返回關(guān)聯(lián)的分配器
Element access元素訪問??
const int &front()constlst.front();返回?cái)?shù)組首元素值
back()lst.back();訪問最后一個(gè)元素
Iterators迭代器??
begincbegin?將迭代器返回到開頭
endcend?將迭代器返回到末尾
rbegincrbegin?將反向迭代器返回到開頭
rendcrend?將反向迭代器返回到末尾
Capacity容量??
bool empty() const;?檢查容器是否為空
size_t? lst.size() const;?返回元素?cái)?shù)
size_t max_size()?返回最大可能的元素?cái)?shù)
void resize(size_t newsize)?更改存儲(chǔ)的元素?cái)?shù) =size()
操作??
void unique()?刪除連續(xù)的重復(fù)元素
void remove(value)?刪除指定值,不存在忽略
remove_if()?刪除滿足特定條件的元素
iterator erase(iterator position);?刪除迭代器所指元素;返回下一個(gè)元素的迭代器
void pop_front()?刪除第一個(gè)元素
void pop_back()?刪除最后一個(gè)元素
erase(std::list)??
erase_if(std::list)?擦除所有滿足特定條件的元素
clear()?清除容器全部內(nèi)容
???
void push_front(const &T Val)?元素插入頭部;
void push_back(const &T Val)?在末尾添加一個(gè)元素
iter insert(iter pos, const &T val);lst.insert(lst.begin()+2,0);在迭代器所指向元素前插入val
void splice(iterator i, list <T> & x, iterator first, iterator last)?在位置i前插入 x [first, last),x刪除該區(qū)間。鏈表可是同一鏈表且i 不在 [first, last)
void merge(list <T> & x)?合并x到尾部并清空 x。要求二個(gè)都是有序
emplace(T value)?就地構(gòu)造元素
emplace_front()?在開始處就位構(gòu)造一個(gè)元素
emplace_back()?在末尾就位構(gòu)造一個(gè)元素
Operations運(yùn)作方式??
void sort()?對(duì)元素進(jìn)行排序
void reverse()?反轉(zhuǎn)元素的順序
swap(std::list)?交換內(nèi)容

?

2.實(shí)例#include <iostream>#include <list>#include <assert.h>using namespace std;#define print_list(lst) \{ cout << "["; \for (auto v:lst) \cout << v << ",";\cout << "]" << endl; \} int main() {//構(gòu)造函數(shù):int arr[6] = { 1,3,2,5,2,3 };int arr1[5] = {1,3,2,4,6 };list<int> lst(arr, arr + 6);list<int> lst1(arr1, arr1 + 5);list<int> lst2{ 10,13,14 };list<int> lst3 = lst2,lst4;lst4.assign(lst2.begin(), lst2.end());list<int>::iterator it;//it++;合法 it+1;不合法//獲取元素:cout << lst.front() <<"="<< *lst.begin() << endl;//1 1首元素cout << lst.back() << endl;//3 尾元素cout << lst.size() <<","<<lst.max_size()<< endl;//6,768614336404564650lst.resize(8);cout << lst.size() << "," << lst.max_size() << endl;//10, 768614336404564650assert(lst.empty() == false);//刪除:lst.sort();lst.unique(); print_list(lst);//刪除相鄰重復(fù)元素lst.pop_front(); print_list(lst);//刪除首元素lst.remove(5); print_list(lst);//刪除元素5,若不存在忽略//排序:lst.sort(); print_list(lst); lst.reverse(); print_list(lst);//反序//使用mergelst.sort(); lst1.sort();lst.merge(lst1); print_list(lst); print_list(lst1);//lst=slt+lst1 lst1=空//附加:print_list(lst4); print_list(lst2);for(auto it=lst2.begin();it!=lst2.end();it++)//lst4=lst4+lst2;lst2不變lst4.push_back(*it);print_list(lst4); print_list(lst2);//遍歷元素:for (auto it = lst.begin(); it != lst.end(); ++it) {cout << *it << "," << endl;}return 0;}

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的C++ list (tcy)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。