14-6-3C++的list

(一)list的插入

1.list.insert(pos,elem);//在pos位置插入一个elem元素的拷贝,返回新数据的位置

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst;

lst.push_back(10);

lst.push_back(30);

lst.push_back(40);

list<int>::iterator it;

it=lst.begin() ;

it++;

lst.insert(it,20);

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

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst;

lst.push_back(10);

lst.push_back(30);

lst.push_back(50);

list<int>::iterator it;

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

{

if(*it==50)

break;

}

if(it!=lst.end())

{

lst.insert(it,40);

}

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

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

2.list.insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst;

lst.push_back(10);

lst.push_back(30);

lst.push_back(50);

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

lst.insert(it, 3, 70);

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

{

cout << *it << " ";

}

cout << endl;

return 0;

}

3.list.insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst, lst1;

lst.push_back(10);

lst.push_back(30);

lst.push_back(50);

lst1.push_back(20);

lst1.push_back(40);

list<int>::iterator it;

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

{

cout << *it << " ";

}

cout << endl;

lst.insert(lst.end(), lst1.begin(), lst1.end());

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

{

cout << *it << " ";

}

cout << endl;

return 0;

}


(二)list的删除

1.list.clear(); //移除容器的所有数据

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst, lst1;

lst.push_back(10);

lst.push_back(30);

lst.push_back(50);

lst.push_back(70);

lst.push_back(90);

lst.push_back(110);

lst.push_back(110);

lst.push_back(110);

list<int>::iterator it;

lst.clear();

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

return 0;

}

2.list.erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置,list.erase(pos);//删除pos位置的数据,返回下一个数据的位置

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst, lst1;

lst.push_back(10);

lst.push_back(30);

lst.push_back(50);

list<int>::iterator it;

it=lst.begin() ;

it++;

it++;

lst.erase(it);

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

{

cout << *it << " ";

}

cout << endl;

return 0;

}

3.Ist.remove(elem)://删除容器中所有与elem值匹配的元素

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst, lst1;

lst.push_back(10);

lst.push_back(30);

lst.push_back(50);

lst.push_back(70);

lst.push_back(90);

lst.push_back(110);

lst.push_back(110);

lst.push_back(110);

list<int>::iterator it;

lst.remove(110);

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

{

cout << *it << " ";

}

cout << endl;

return 0;

}


(三)list的反转

#include <iostream>

#include <list>

using namespace std;

int main()

{

list<int> lst, lst1;

lst.push_back(10);

lst.push_back(30);

lst.push_back(50);

lst.push_back(70);

lst.push_back(90);

lst.push_back(110);

list<int>::iterator it;

lst.reverse() ;

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

{

cout<<*it<<" ";

}

cout<<endl;

return 0;

}

相关推荐
ん贤18 分钟前
怎么设计,才算一个优秀审计模块
大数据·开发语言·设计·审计
l1t24 分钟前
测试用rust重写的postgresql: pgrust
开发语言·postgresql·rust
2501_9481069127 分钟前
计算机毕业设计之jsp-智慧旅游分享平台
java·开发语言·spark·汽车·课程设计·旅游
阿里云云原生1 小时前
Agent 不再是“玩具”!AgentScope Java 2.0 GA 发布:构建企业级分布式智能体底座
java·开发语言·分布式·agentscope
BIM云平台开发1 小时前
【App.vue里跟踪页面跳转和用户ID】
开发语言·前端·javascript
NiceCloud喜云1 小时前
ClaudeAPI 接入 n8n / Dify / Open WebUI 实战:Base URL 配置、调用示例与排错
开发语言·ai·chatgpt·aigc
小保CPP1 小时前
OCR C++ Tesseract基础用法
c++·人工智能·ocr·模式识别·光学字符识别
庵中十三居士1 小时前
【纯AI无人工修改】AI Agent从0到1实战:50行Python手写核心循环,一次看懂所有Agent框架的底层逻辑
开发语言·人工智能·python
TCW11211 小时前
AI底层系列:用C++实现线性代数的公式推导与算法设计-8.线性变化(3)
c++·人工智能·算法
甄同学1 小时前
第二十篇:MCP协议集成,Claude Code如何扩展AI Agent的能力边界
开发语言·人工智能·qt