移动端网站开发环境,企业网站的建立方法,网络营销主要干什么,门户网站做的比较好的公司std::list 容器介绍及用法
1. std::list
std::list是 C 标准模板库#xff08;STL#xff09;中的一个顺序容器适配器#xff0c;它提供了双向链表的数据结构。与 std::vector 不同#xff0c;std::list 不存储连续的元素#xff0c;因此它可以高效地在中间插入和删除元…std::list 容器介绍及用法
1. std::list
std::list是 C 标准模板库STL中的一个顺序容器适配器它提供了双向链表的数据结构。与 std::vector 不同std::list 不存储连续的元素因此它可以高效地在中间插入和删除元素而不需要移动其他元素。
2. 特点
1动态大小std::list 的大小可以在运行时动态改变。
2插入和删除操作在任何位置插入和删除元素都非常高效。
3内存分配std::list 会分散地分配内存这有助于减少内存碎片。
4性能访问元素的速度较慢相对于 std::vector因为需要遍历链表。
3. 基本用法
std::list 支持大多数标准的容器操作如 push_back、push_front、pop_back、pop_front、insert、erase 等。
1声明一个 std::list
#include liststd::listint myList;
2插入元素
/** 在末尾插入 */myList.push_back(10);/** 在开头插入 */myList.push_front(20);/** 在特定位置插入 */auto it std::find(stringList.begin(), stringList.end(), 20);if(it ! stringList.end()){stringList.insert(it, 30);}
3删除元素
/** 删除末尾元素 */myList.pop_back();/** 删除开头元素 */myList.pop_front();/** 删除特定位置的元素 */it myList.begin();it; /// 移动到第一个元素myList.erase(it); /// 删除当前指向的元素
4遍历 std::list
for(std::listint::iterator it myList.begin(); it ! myList.end(); it){std::cout *it std::endl;}
4. 例程
以下是一个简单的例程演示了如何使用 std::list 来存储和操作字符串。
#include iostream#include list#include algorithm int main(){std::liststd::string stringList;/** 插入字符串. */stringList.push_back(Apple);stringList.push_back(Banana);stringList.push_back(Cherry);/** 遍历并打印字符串. */std::cout List before modification: ;for (const auto str : stringList) {std::cout str ;}std::cout std::endl; /// 在链表中间插入一个新的字符串.auto it std::find(stringList.begin(), stringList.end(), Banana);if(it ! stringList.end()){stringList.insert(it, Date);}/** 删除一个字符串. */stringList.remove(Banana);/** 再次遍历并打印字符串. */std::cout List after modification: ;for (const auto str : stringList) {std::cout str ;}std::cout std::endl;return 0;}