当前位置: 首页 > article >正文

C++系列-STL容器的应用举例

STL容器的应用举例

    • @[TOC](STL容器的应用举例)

临安春雨初霁》 陆游
世味年来薄似纱,谁令骑马客京华。
小楼一夜听春雨,深巷明朝卖杏花。
矮纸斜行闲作草,晴窗细乳戏分茶。
素衣莫起风尘叹,犹及清明可到家


code:
/*
报道的有10个同学,需要给他们分配兴趣组别,篮球,科技,音乐,随机分配。
要给他们安排学号,按顺序安排。
通过multimap进行信息的插入,key: 兴趣组别,value:学生信息

分析:
学生的名字,学号,可以存储在vector中
创建multimap,记录所有信息
*/
#include <iostream>
#include <vector>
#include <map>
using namespace std;

class Student
{
public:
	Student(string name, int id) : m_name(name), m_id(id) {}
	string m_name;
	int m_id;
};

template<typename T1, typename T2>
void print_map(const multimap<T1, T2>& mp)
{
	for (auto i_mp : mp)
	{
		cout << i_mp.first << ", " << i_mp.second.m_name << ", id: " << i_mp.second.m_id << endl;
	}
}

void print_vector(const vector<Student>& vect)
{
	for (auto i_vect : vect)
	{
		cout << "name: " << i_vect.m_name << ", id: " << i_vect.m_id << endl;
	}
}

void creat_worker(vector<Student>& v_stu)
{
	string name_str = "ABCDEFGHIJ";

	for (int i_loop = 0; i_loop < 10; i_loop++)
	{
		string temp_name = "学生";
		temp_name += name_str[i_loop];
		Student stu(temp_name, i_loop + 1);
		v_stu.push_back(stu);
	}
}

void  creat_worker_map(vector<Student>& v_stu, multimap<string, Student>& mp_stu)
{
	string array[3] = { "篮球", "科技", "音乐" };
	for (auto i_v_stu : v_stu)
	{
		mp_stu.insert(make_pair(array[rand() % 3], i_v_stu));
	}
}

int main()
{
	// 创建学生,v_stu中有学生姓名和学号信息
	vector<Student> v_stu;
	creat_worker(v_stu);
	// 以兴趣班作为key,学生作为value
	multimap<string, Student> mp_stu;
	creat_worker_map(v_stu, mp_stu);
	print_map(mp_stu);
	
	system("pause");
	return 0;
}

result:
科技, 学生C, id: 3
科技, 学生D, id: 4
科技, 学生F, id: 6
科技, 学生I, id: 9
篮球, 学生G, id: 7
篮球, 学生H, id: 8
音乐, 学生A, id: 1
音乐, 学生B, id: 2
音乐, 学生E, id: 5
音乐, 学生J, id: 10

http://www.kler.cn/a/291169.html

相关文章:

  • nginx-rtmp服务器搭建
  • 数据库管理-第274期 Oracle Enterprise Manager 24ai新特性一览(20241223)
  • 【蓝桥杯——物联网设计与开发】拓展模块3 - 温度传感器模块
  • 重温设计模式--代理、中介者、适配器模式的异同
  • 基于云计算的资源管理系统
  • Echarts连接数据库,实时绘制图表详解
  • AI自动生成PPT哪个软件好?如何自动生成专业级PPT?
  • 浙大数据结构:01-复杂度1 最大子列和问题
  • 解决el-table中使用el-input无法聚焦问题
  • OpenAI transcription API bad request
  • ubuntu20.04 colmap安装
  • 假期学习-- iOS runloop了解和使用
  • 【STM32】寄存器点灯
  • 比特币客户端和API
  • 日程安排组件DHTMLX Scheduler v7.1 - 支持RFC-5545格式
  • VSCode中多行文本的快速前后缩进
  • kitti深度估计数据集介绍
  • Python知识点:Python开发中,如何使用Git进行版本控制
  • WEB渗透Linux提权篇-可写文件提权
  • 集成电路学习:什么是MOSFET(MOS管)
  • 【kubernetes】污点配置、cm、secret练习
  • 数学基础 -- 线性代数之共轭转置矩阵
  • 体会循环---冒泡排序
  • 2024.9.4
  • 在js渲染的dom中的事件中传递对象
  • 米家商城主题 html 页面源码分享,可用于网页设计作业