列表是允许非连续内存分配的序列容器。与vector相比, 列表的遍历速度较慢, 但??是一旦找到位置, 插入和删除操作就会很快。通常, 当我们说一个列表时, 我们谈论的是双向链表。为了实现单链列表, 我们使用转发列表。
下面是显示List的某些功能的程序:
#include <
iostream>
#include <
list>
#include <
iterator>
using namespace std;
//function for printing the elements in a list
void showlist(list <
int >
g)
{
list <
int >
::iterator it;
for (it = g.begin();
it != g.end();
++it)
cout <
<
'\t' <
<
*it;
cout <
<
'\n' ;
}int main()
{list <
int >
gqlist1, gqlist2;
for ( int i = 0;
i <
10;
++i)
{
gqlist1.push_back(i * 2);
gqlist2.push_front(i * 3);
}
cout <
<
"\nList 1 (gqlist1) is : " ;
showlist(gqlist1);
cout <
<
"\nList 2 (gqlist2) is : " ;
showlist(gqlist2);
cout <
<
"\ngqlist1.front() : " <
<
gqlist1.front();
cout <
<
"\ngqlist1.back() : " <
<
gqlist1.back();
cout <
<
"\ngqlist1.pop_front() : " ;
gqlist1.pop_front();
showlist(gqlist1);
cout <
<
"\ngqlist2.pop_back() : " ;
gqlist2.pop_back();
showlist(gqlist2);
cout <
<
"\ngqlist1.reverse() : " ;
gqlist1.reverse();
showlist(gqlist1);
cout <
<
"\ngqlist2.sort(): " ;
gqlist2.sort();
showlist(gqlist2);
return 0;
}
上面程序的输出是:
List 1 (gqlist1) is :0246
81012141618List 2 (gqlist2) is :27242118
15129630gqlist1.front() : 0
gqlist1.back() : 18
gqlist1.pop_front() :2468
1012141618gqlist2.pop_back() :27242118
1512963gqlist1.reverse() :18161412
108642gqlist2.sort():36912
1518212427
与List一起使用的功能:
- front()–返回列表中第一个元素的值。
- back()–返回列表中最后一个元素的值。
- push_front(g)–在列表的开头添加新元素" g"。
- push_back(g)–在列表末尾添加新元素" g"。
- pop_front()–删除列表的第一个元素, 并将列表大小减小1。
- pop_back()–删除列表的最后一个元素, 并将列表大小减小1
- C++ STL中的list::begin()和list::end()–开始()函数返回指向列表第一个元素的迭代器
- end()–end()函数返回一个迭代器, 该迭代器指向理论上的最后一个元素, 该元素位于最后一个元素之后。
- 在C++ STL中列出rbegin()和rend()函数–rbegin()返回一个反向迭代器, 该迭代器指向列表的最后一个元素。rend()返回一个反向迭代器, 该迭代器指向列表开头之前的位置。
- 在C++ STL中列出cbegin()和cend()函数–cbegin()返回一个常量随机访问迭代器, 该迭代器指向列表的开头。cend()返回一个常量随机访问迭代器, 该迭代器指向列表的末尾。
- 在C++ STL中列出crbegin()和crend()函数–crbegin()返回一个常量反向迭代器, 该迭代器指向列表的最后一个元素, 即容器的反向开始。crend()返回一个常量反向迭代器, 该迭代器指向列表中第一个元素之前的理论元素, 即列表的末尾。
- empty()–返回列表是否为空(1)或不为(0)。
- insert()–在列表中指定位置的元素之前插入新元素。
- erase()–从列表中删除单个元素或一系列元素。
- assign()–通过替换当前元素来分配新元素到列表中, 并调整列表大小。
- remove()–从列表中删除所有与给定元素相等的元素。
- C++ STL中的list::remove_if()–用于从列表中删除与谓词或条件相对应的所有值, 这些谓词或条件作为函数的参数给出。
- reverse()–反转列表。
- size()–返回列表中的元素数。
- 在C++ STL中列出resize()函数–用于调整列表容器的大小。
- list_resize()–以递增顺序对列表进行排序。
- 在C++ STL中列出max_size()函数–返回列表容器可以容纳的最大元素数。
- 在C++ STL中列出unique()–从列表中删除所有重复的连续元素。
- C++ STL中的list::emplace_front()和list::emplace_back()–emplace_front()函数用于将新元素插入列表容器, 新元素将添加到列表的开头。emplace_back()函数用于将新元素插入到列表容器中, 新元素将添加到列表的末尾。
- C++ STL中的list::clear()–明确()函数用于删除列表容器的所有元素, 从而使其大小为0。
- list::operator =在C++ STL中–该运算符用于通过替换现有内容为容器分配新内容。
- C++ STL中的list::swap()–此功能用于将一个列表的内容与相同类型和大小的另一个列表交换。
- 在C++ STL中列出splice()函数–用于将元素从一个列表转移到另一个列表。
- C++ STL中的list merge()函数–将两个排序列表合并为一个
- 在C++ STL中列出emplace()函数–通过在给定位置插入新元素来扩展列表。
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。
【C++标准模板库(STL)中的列表用法详细介绍】被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C++ STL通过激烈的问题解决过程来训练和掌握这些概念。
推荐阅读
- 分割字符串的方法,以便每个分区以不同的字符开头
- 从二进制字符串中删除一个元素,使XOR变为0的方法
- 萝卜家园系统win732位介绍
- win7纯净版硬盘图解
- 光盘win7 64位图解
- win7原版系统iso介绍
- 雨林木风win7纯净版32位介绍
- win7旗舰版32介绍
- win832纯净版介绍