C++ list (tcy)
生活随笔
收集整理的這篇文章主要介紹了
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()const | lst.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() | ? | 清除容器全部?jī)?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)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MES系统开发手记(一)
- 下一篇: 做好功课!解析MES系统实施过程