C/C++ STL提供的序列式容器之List
2023-12-16 12:05:00
List 由双向链表实现而成,元素存放在堆中,每个元素都是放在一块内存中。没有空间预留习惯,所以每分配一个元素都会从内存中分配,每删除一个元素都会释放它占用的内存。
特点
?? ?1. 内存空间可以是不连续的,通过指针来进行数据的访问,这个特点使得它的随机存取变得非常没有效率,因此它没有提供 [] 操作符的重载。(缺点)
?? ?2. 由于链表的特点,在任意位置的插入和删除效率都较高。(优点)
?? ?3. 只支持首尾两个元素的直接存取,想获取其他元素(访问时间一样),则需要遍历链表。(缺点)
总结:不支持随机访问,在任意位置的插入和删除效率都较高。
?
// Len_stl.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> listTemp;
for (int i = 0; i < 6; i++)
{
listTemp.push_back(i);
}
// 从头部出栈
cout << "\n\n开始从头部出栈" << endl;
while (!listTemp.empty())
{
cout << "listTemp.front()="<<listTemp.front() << " , 长度="<< listTemp.size()<<endl;
listTemp.pop_front();
}
cout<<"长度 = "<< listTemp.size()<<endl;
// 插入
cout << "\n\n插入 111,222,333后";
listTemp.push_back(111);
listTemp.push_back(222);
listTemp.push_back(333);
cout << "长度 = " << listTemp.size() << endl;
// 从尾部出栈
cout << "\n\n开始从尾部出栈"<<endl;
while (!listTemp.empty())
{
cout << "listTemp.back()=" << listTemp.back() << " , 长度=" << listTemp.size() << endl;
listTemp.pop_back();
}
cout << "长度 = " << listTemp.size() << endl;
return 0;
}
执行结果:
文章来源:https://blog.csdn.net/wendyWJGU/article/details/134981345
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!