首页 > 代码库 > 数据结构——表(list)
数据结构——表(list)
#include <iostream>
#include <list>
using namespace std;
标准类的存储方式为双向循环链表
list类
1 class list 2 { 3 list(); 4 list(int n,const T&value=http://www.mamicode.com/T()); 5 list(T *first,T *last); 6 //push_back(); 7 //pop_back(); 8 //size(); 9 //以上方法与向量相同 list中也包含10 void push_front(const T&value);11 void pop_front();12 13 iterator begin(); //迭代器 默认指向第一个node14 iterator end(); //指向表头15 16 void erase (iterator pos);17 void erase (iterator first,iterator last);//删区间18 iterator insert(iterator pos,const T&value);//插在pos前 19 }
iterator(STL通用)
*iter; //指向节点的值
iter++; //指向next
iter--;
iter1==iter2; //指向同一个位置
*iter1==*iter2; //值相等 位置不一定
实例化:
std::list<int>::iterator iter=list.begin();
删除(!):
list.erase(iter++); //注意++ 否则删除节点之后的表丢失 内存泄露
//此处++运算符重载后 先获取下一节点位置再删除 若++iter则先删除再获取下一位置
插入练习:
void doubleData(std::list <T> &aList)
{
std::list<T>::iterator p=aList.begin();
while(p!=aList.end())
{
aList.insert(p,*p);
p++;
}
}
//初始数据:1234 输出结果:11223344
数据结构——表(list)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。