定义: 列表的核心是一个双向链表,双向开口,可在头、尾两个方向进行元素的插入和删除,因此list除了提供与vector相同的push_back(),和pop_back(),之外还提供在头部进行数据输入输出的操作函数。push_front()和pop_front()。因为链表内存空间不连续,所以不支持随即操作,既没有at()操作也不支持下标访问,只能从头到尾的顺序操作
在我们使用列表的时候,我们也要使用迭代器:
一些函数:
列表
list
list<int> a;
迭代器
iterator
list<int>::iterator it;
//指向int元素的迭代器
a.begin()//返回列表a的最前方的迭代器
a.end()//返回列表a的最后端的下一个位置
for(list<int>::iterator it = a.begin();it != a.end();it++){
cout << *it << endl;
} //遍历列表,输出列表
for(list<int>::iterator it = b.begin();it != b.end();it++){
cout << it->x <<' '<<it->;<<endl;
}
a.rbegin()//返回一个反向的最前端的迭代器
a.rend()//返回反向末端迭代器
a.push_back(x)//往链表最后端新增元素
a.push_front(x)//往链表最前端新增元素
a.pop_back()
a.pop_front()
a.size()
a.empty()
a.insert(it, x)
a.erase(it)
下面是**的笔记我不是抄袭只是借鉴
列表 list
定义
list<int> a;
迭代器
iterator
定义:list<int> :: iterator it;
函数
a.begin()返回列表a最前端的迭代器
a.end()返回列表a的最后端的下一个位置的迭代器
a.rbegin()
a.push_back(x) 往列表最后端新增元素
a.push_front(x) 往列表最前端新增元素
a.pop_back(x)
a.pop_front(x)
a.size()
a.empty()
a,insert(it, x) 把xx插入到itit迭代器所指的元素
a.erase(it) 把itit迭代器所指的元素删除 (注:用了这个函数,这里的 itit 迭代器已经像指针一样被释放掉了)
it = a.erase(it) 用法
遍历列表
for(list<int>::iterator it = a.brgin(); it != a.end(); it++){
cout << *it;
}
for(list<Type>::iterator it = b.begin(); it != b.end(); it++){
cout << (*it.x;
cout << it-> x << ' ' << it -> y;
}