linux下练习 c++ 类库中list的特性、关联式容器共性介绍

简介: /* 库模版中 list 特性: 双向链表 增删:.push_front(element),.pop_front(),.remove(element) 不支持下标访问 除去重复:.
/*
库模版中 list 特性:
双向链表
增删:.push_front(element),.pop_front(),.remove(element)
不支持下标访问
除去重复:.unique() 相邻的重复元素只保留一个
排序:.sort(),默认用'<'号比较,自定义类型要重载运算符
倒置:.reverse()
转移:.aplice(pos,list2),.aplice(pos,list2,pos2),
	 .aplice(pos,list2,pos2_begin,pos2_end)  
归并:.merge(list2)
*/
#include<iostream>
using namespace std;
#include<list>
#include<cassert>
#include "print.h"
bool mult3(int x,int y)//模3的余数从小到大
{
	x%=3;
	y%=3;
	return x<y;
}

int main()
{
	int a[7]={3,5,5,8,5,1,6};
	int b[5]={5,7,9,2,4};
	list<int> li(a,a+7),li2(b,b+5);
	print(li.begin(),li.end());
	li.unique();//可自定义判断相等的函数
	print(li.begin(),li.end());
	li.sort();//排序
	li.unique();//去重
	print(li.begin(),li.end());
	li.reverse();//倒序
	print(li.begin(),li.end());
	li.splice(li.begin(),li2);//转移
	print(li.begin(),li.end());
	assert(li2.empty());//判断是否为空,为假时才报错
	li.remove(5);//删除值为5的所有元素
	print(li.begin(),li.end());
	li.sort();li.unique();//去重
	print(li.begin(),li.end());
	li2.push_back(3);li2.push_back(5);
	li2.push_back(9);li2.push_back(10);
	print(li2.begin(),li2.end());
	li.merge(li2);//将li2合并到li中
	print(li.begin(),li.end());
	b[3]=6;
	li2.assign(b,b+5);
	print(li2.begin(),li2.end());
	li2.sort(greater<int>());//用'>'排序,从大到小
	print(li2.begin(),li2.end());
	li2.sort(mult3);//用自写规则排序,从小到大
	print(li2.begin(),li2.end());
	return 0;
}

 

//print.h

//print.h

#include <iostream>

using namespace std;

#ifndef print_fun

#define print_fun

template<typename T>

///显示序列数据

void print(T b,T e,char c=' ')

{

	bool isExit=false;

	while (b!=e)

	{

		cout<<*b++<<c;

		isExit=true;

	}

	if(isExit) cout<<endl;



}

#endif


 


 

 

 

/*
关联式容器共性:二叉查找树实现,自动根据关键字排序
		  set<K>,multiset<K>,map<K,V>,multimap<K,V>
查找:.find(key) 失败返回.end()
统计:.count(key)
删除:.erase(key)
插入:.insert(element)
区间:.lower_bund(key) //取得关键字为key的第一个元素位置
	 .upper_bound(key) //取得关键字为key的最后一个元素之后的位置
	 .equal_range(key) 取得关键字为key的区间,返回pair
*/


 

相关文章
|
4月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
374 146
|
存储 安全 数据中心
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
253 1
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
存储 监控 Linux
在Linux中,如何进行容器技术的应用?
在Linux中,如何进行容器技术的应用?
|
Linux 程序员 测试技术
详解Linux中的容器技术
【8月更文挑战第4天】容器技术依赖两大核心:namespace(命名空间)实现逻辑隔离,如IP地址与用户空间的不同视图;cgroup(控制组)则确保资源如CPU和内存的配额使用。
|
应用服务中间件 Linux nginx
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
这篇文章讨论了Linux虚拟机磁盘扩容的方法,包括外部配置、具体扩容步骤和扩容后的效果验证。同时,文章还涉及了Docker容器磁盘满的问题及其解决方法,如删除不必要的镜像和容器,以及调整Docker的安装路径。此外,还提到了意外情况的处理,例如误删除停止的容器后的应对措施。最后,文章还提供了使用Docker安装nginx的步骤和成功访问的截图。
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
|
安全 关系型数据库 开发者
Docker Compose凭借其简单易用的特性,已经成为开发者在构建和管理多容器应用时不可或缺的工具。
Docker Compose是容器编排利器,简化多容器应用管理。通过YAML文件定义服务、网络和卷,一键启动应用环境。核心概念包括服务(组件集合)、网络(灵活通信)、卷(数据持久化)。实战中,编写docker-compose.yml,如设置Nginx和Postgres服务,用`docker-compose up -d`启动。高级特性涉及依赖、环境变量、健康检查和数据持久化。最佳实践涵盖环境隔离、CI/CD、资源管理和安全措施。案例分析展示如何构建微服务应用栈,实现一键部署。Docker Compose助力开发者高效驾驭复杂容器场景。
314 1
|
C++ 容器
C++之评委打分案例(vector与deque容器练习)
C++之评委打分案例(vector与deque容器练习)
154 1
|
Kubernetes Ubuntu Linux
在Linux中,如何设计和部署容器化应用?
在Linux中,如何设计和部署容器化应用?