14-6-2C++STL的list

(一)list对象的带参数构造

1.list(elem);//构造函数将n个elem拷贝给本身

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst(3,7);

list<int>::iterator it;

for(it=lst.begin();it!=lst.end() ;it++)

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

  1. list(beg,end)://构造函数将[beg,end)区间中的元素拷贝给本身

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst;

lst.push_back(10);

lst.push_back(20);

lst.push_back(30);

lst.push_back(40);

list<int>::iterator beg=lst.begin();

beg++;

list<int>::iterator end=lst.begin();

end++;

end++;

end++;

list<int> lst1(beg,end);

list<int>::iterator it;

for(it=lst1.begin();it!=lst1.end() ;it++)

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

3.list(const list&lst)://拷贝构造函数

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst;

lst.push_back(10);

lst.push_back(20);

lst.push_back(30);

lst.push_back(40);

list<int>lst1(lst);

list<int>::iterator it;

for(it=lst1.begin();it!=lst1.end() ;it++)

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}


(二)list容器的赋值

1.list.assign(beg, end);//将[beg,end)区间中的数据拷贝赋值给本身,注意该区间

是左闭右开的区间

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst, lst2;

lst2.push_back(10);

lst2.push_back(20);

lst2.push_back(30);

lst2.push_back(40);

list<int>::iterator it = lst2.end();

it--;

lst.assign(lst2.begin(), it);

for (list<int>::iterator it = lst.begin(); it != lst.end(); it++)

{

cout << *it << " ";

}

cout << endl;

return 0;

}

2.list.assign(n,elem);//将n个elem拷贝赋值给本身

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst;

lst.assign(5,7);

for (list<int>::iterator it = lst.begin(); it != lst.end(); it++)

{

cout << *it << " ";

}

cout << endl;

return 0;

}

3.list.swap(lst);//将Ist与本身的元素互换

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst,lst1;

lst1.push_back(10);

lst1.push_back(20);

lst.assign(5,7);

lst.swap(lst1);

for (list<int>::iterator it = lst.begin(); it != lst.end(); it++)

{

cout <<"lis="<<*it << " ";

}

cout << endl;

for (list<int>::iterator it = lst1.begin(); it != lst1.end(); it++)

{

cout <<"lis1="<<*it << " ";

}

cout << endl;

return 0;

}


(三)list容器的大小

1.list.size();//返回容器中元素的个数

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst1;

lst1.push_back(10);

lst1.push_back(20);

lst1.push_back(30);

lst1.push_back(40);

cout<<"lst1的长度"<<lst1.size()<<endl;

return 0;

}

2.list.empty();//判断容器是否为空

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst1;

lst1.push_back(10);

lst1.push_back(20);

lst1.push_back(30);

lst1.push_back(40);

cout<<"empty?="<<lst1.empty()<<endl;

return 0;

}

3.list.resize(num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置;如果容器变短,则末尾超出容器长度的元素被删除;

list.resize(num, elem);//重新指定容器的长度为num,若容器变长,则以elem值填充新位置;如果容器变短,则末尾超出容器长度的元素被册除

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst1;

lst1.push_back(10);

lst1.push_back(20);

lst1.push_back(30);

lst1.push_back(40);

lst1.resize(lst1.size() +3);

list <int>::iterator it;

for(it=lst1.begin() ;it!=lst1.end();it++)

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst1;

lst1.push_back(10);

lst1.push_back(20);

lst1.push_back(30);

lst1.push_back(40);

lst1.resize(lst1.size() +3,70);

list <int>::iterator it;

for(it=lst1.begin() ;it!=lst1.end();it++)

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst1;

lst1.push_back(10);

lst1.push_back(20);

lst1.push_back(30);

lst1.push_back(40);

lst1.resize(3);

list <int>::iterator it;

for(it=lst1.begin() ;it!=lst1.end();it++)

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

相关推荐
小马过河R5 分钟前
不加载PHP OpenTelemetry SDK实现Trace‌与Logs
开发语言·分布式·微服务·云原生·php
Lilith的AI学习日记9 分钟前
n8n 中文系列教程_25.在n8n中调用外部Python库
开发语言·人工智能·python·机器学习·chatgpt·ai编程·n8n
vvilkim14 分钟前
深入理解C#异步编程:原理、实践与最佳方案
服务器·开发语言·c#
源力祁老师20 分钟前
高温炉制造企业Odoo ERP实施规划与深度分析报告
开发语言·学习方法
末日汐36 分钟前
STL-list
开发语言·c++
枣伊吕波37 分钟前
第十二节:第三部分:集合框架:List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理
java·jvm·list
qq_4335545437 分钟前
C++ list数据删除、list数据访问、list反转链表、list数据排序
开发语言·c++·list
初遇你时动了情37 分钟前
dart常用语法详解/数组list/map数据/class类详解
数据结构·flutter·list
uyeonashi42 分钟前
【从零开始学习QT】快捷键、帮助文档、Qt窗口坐标体系
开发语言·c++·qt·学习
初次见面我叫泰隆1 小时前
Golang——2、基本数据类型和运算符
开发语言·后端·golang