简单房地产网站在哪,老版建设银行网站,wordpress如何更改域名,辽宁省建设厅官方网1.再谈链表List链表的概念再度出现了#xff0c;作为线性表的一员#xff0c;C的STL提供了快速进行构建的方法#xff0c;为此#xff0c;在前文的基础上通过STL进行直接使用#xff0c;这对于程序设计中快速构建原型是相当有必要的#xff0c;这里的STL链表是单链表的形…1.再谈链表List链表的概念再度出现了作为线性表的一员C的STL提供了快速进行构建的方法为此在前文的基础上通过STL进行直接使用这对于程序设计中快速构建原型是相当有必要的这里的STL链表是单链表的形式。2.头文件头文件#include3.初始化格式为explicit list (const allocator_type alloc allocator_type());我们以int类型作为参数为例进行创建其创建方法与vector无异list l1; //创建一个空链表list l2(10); //创建一个链表其有10个空元素list l3(5,20); //创建一个链表其有5个元素内容为20list l4(l3.begin(),l3.end()); //创建一个链表其内容为l3的内容list l5(l4); //创建一个链表其内容为l4的内容4. 迭代器遍历代码举例(其方法和vector版本无异只是更加精简)list li;for(list::iterator itli.begin();it!li.end();it){cout}5. 常用接口我们使用list li;预先创建了一个链表命名为li方便举例a)判断是否为空empty()返回一个bool类型的值只存在真和假当链表为空时为真不为空时为假函数原型bool empty() const;if(li.empty()){ //当链表为空的时候执行cout}else{cout}b)获取大小size()返回链表元素的个数函数原型size_type size() const;coutc) 链表前插入push_front() 删除 pop_front()push_front()表示在链表最前端插入一个数据pop_front()表示在链表最前端删除一个数据。函数原型void push_front (const value_type val);void pop_front();li.push_front(10);li.pop_front();d) 链表后插入push_back() 删除 pop_back()push_back()表示在链表尾插入一个数据pop_back()表示将链表尾删除一个数据。函数原型void push_back (const value_type val);void pop_back();li.push_back(10);li.pop_back();e) 插入insert()插入元素到指定位置通过在元素之前在指定位置插入新元素来扩展向量从而有效地增加容器大小所插入的元素数量。函数原型插入单一数据到指定位置iterator insert (iterator position, const value_type val);插入一段数据到指定位置void insert (iterator position, size_type n, const value_type val);插入一段别的容器的数据到指定位置template void insert (iterator position, InputIterator first, InputIterator last);使用举例li.insert(li.begin(),10); //在链表最前端插入数据10li.insert(li.begin(),5,20); //在链表最前端插入5个数据内容为20list k(2,50); //创建一个新的链表k,其拥有2个元素内容均为50li.insert(li.begin(),li.begin(),li.end()); //在链表v最前端插入链表上K的全部内容f) 删除erase()删除一个元素或者是一段区间的元素将会自动缩减空间使用。函数原型iterator erase (iterator position);iterator erase (iterator first, iterator last);使用举例li.erase(li.begin()); //删除第一个元素li.erase(li.begin(),li.begin()4); //删除前4个元素g)排序sort()让整个链表变成升序状态或者变成自定义的排序状态函数原型void sort();template void sort (Compare comp);详细举例#include#includeusing namespace std;sint cmp(const int a,const int b){//简单的自定义降序序列return ab;}int main(){list li; //创建一个空链表for(int i10;i6;i--){li.push_back(i);}li.push_front(3);li.push_back(20);list li2(li);for(list::iterator itli.begin();it!li.end();it){cout}cout//排序前3 10 9 8 7 6 20//li.sort();for(list::iterator itli.begin();it!li.end();it){cout}cout//默认排序后 3 6 7 8 9 10 20//li2.sort(cmp);for(list::iterator itli2.begin();it!li2.end();it){cout}cout//自定义排序后 20 10 9 8 7 6 3//return 0;}h)逆序reverse()相对于自定义的降序方法STL提供了一个默认的降序方法reverse()类似于sort一样直接使用即可。void reverse();li.reverse();