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

第十五章 STL(stack、queue、list、set、map容器使用)

栈stack

使用:

队列queue

双向循环链表list

list构造函数

list 赋值和交换

list 大小操作

list 插入和删除

list 数据存取

list 反转和排序

排序算法sort降序操作

排序案例

#include<iostream>
using namespace std;
#include<list>class Person {
private:string name;int age;int hight;public:Person(string n, int a, int h) {this->name = n;this->age = a;this->hight = h;}void show() const{cout << "姓名:" << this->name << " " << "年龄:" << this->age << " " << "身高:" << this->hight << endl;}string getName() const {return name;}int getAge() const {return age;}int getHight() const {return hight;}};bool comparePerson(const Person& p1, const Person& p2) {if (p1.getAge() < p2.getAge())				//年龄升序return true;else if (p1.getAge() == p2.getAge()) {	if (p1.getHight() > p2.getHight())		//身高降序return true;}return false;
}void printPerson(const list<Person> &L) {for (list<Person>::const_iterator it = L.begin(); it != L.end(); it++) {it->show();}
}int main() {list<Person> persons;Person p1("张三", 20, 160);Person p2("李四", 18, 180);Person p3("王五", 8, 180);Person p4("赵六", 18, 150);//插入数据persons.push_back(p1);persons.push_back(p2);persons.push_back(p3);persons.push_back(p4);cout << "排序前" << endl;printPerson(persons);persons.sort(comparePerson);cout << "排序后" << endl;printPerson(persons);}

集合set(排序树)

set构造和赋值

set大小和交换

set插入和删除

set查找和统计

set和multiset区别

pair对组

set容器排序

set存放内置数据类型

set存放自定义数据类型

字典map

map构造和赋值

map大小和交换

map插入和删除

set查找和统计

map和multimap区别

同set

map容器排序

练习

#include <iostream>
using namespace std;
#include<vector>
#include<map>class employee {
private:string name;int salary;public:employee(string name, int salary) {this->name = name;this->salary = salary;}string getName() {return name;}int getSalary() {return salary;}
};void createEmployee(vector<employee> &e) {string nameSeed = "ABCDEFGHIJ";string name;int salary = rand() % 10000 + 10000;for (int i = 0; i < 10; i++) {name = "员工";name += nameSeed[i];e.push_back(employee(name, salary));salary = rand() % 10000 + 10000;}}void setGroups(multimap<int, employee> &G,vector<employee> &E) {std::srand(std::time(0));int depId;for(vector<employee>::iterator it = E.begin(); it!= E.end(); it++) {depId = rand() % 3 + 1; // 随机分配部门ID 1-3G.insert(make_pair(depId, *it)); // 将员工分配到对应部门}}int main() {multimap<int, employee> groups;vector<employee> e;			//员工createEmployee(e);			//员工初始化setGroups(groups, e);multimap<int, employee>::iterator pos = groups.find(1);		//策划部门int count = groups.count(1);								//统计部门人数int index = 0;cout << "策划部门员工信息:" << endl;for (; pos != groups.end() && index < count; pos++,index++) {cout << "姓名:" << pos->second.getName() << " 工资:" << pos->second.getSalary() << endl;}cout << "----------------------------------------" << endl;pos = groups.find(2);		//美术部门count = groups.count(2);								//统计部门人数index = 0;cout << "美术部门员工信息:" << endl;for (; pos != groups.end() && index < count; pos++, index++) {cout << "姓名:" << pos->second.getName() << " 工资:" << pos->second.getSalary() << endl;}cout << "----------------------------------------" << endl;pos = groups.find(3);		//研发部门count = groups.count(3);								//统计部门人数index = 0;cout << "研发部门员工信息:" << endl;for (; pos != groups.end() && index < count; pos++, index++) {cout << "姓名:" << pos->second.getName() << " 工资:" << pos->second.getSalary() << endl;}system("pause");return 0;
}

http://www.lryc.cn/news/585617.html

相关文章:

  • Nginx 添加 Stream 模块(不覆盖已安装内容)
  • Java 中使用 Stream 将 List 转换为 Map 实战笔记(生产级版)
  • 【Freertos实战】零基础制作基于stm32的物联网温湿度检测(教程非常简易)持续更新中.........
  • 计算机网络第三章(5)——数据链路层《广域网》
  • 【网络编程】KCP——可靠的 UDP 传输协议——的知识汇总
  • 触控屏gt1947
  • 数据治理到底是什么?搞清这四件事,你就彻底明白了!
  • 【C++】内联函数inline以及 C++入门(4)
  • 静态路由综合配置实验报告
  • python实现DoIP基本通信(收发报文)
  • 深入探索Kafka Streams:企业级实时数据处理实践指南
  • 外媒:蚂蚁数科等科技公司在香港数字资产枢纽建设中显身手
  • 基于强化学习的智能推荐系统优化实践
  • 星云穿越与超光速飞行特效的前端实现原理与实践
  • 运筹说 第140期 | 从直觉到算法:这些奠基人如何塑造了启发式方法的科学根基?
  • 分享|2025年机器学习工程师职业技术证书报考指南
  • ABP VNext + Microsoft YARP:自定义反向代理与请求路由
  • 七牛云运维面试题及参考答案
  • RabbitMQ 之顺序性保障
  • 单链表,咕咕咕
  • 鸿蒙系统安全机制全解:安全启动 + 沙箱 + 动态权限实战落地指南
  • C语言易错点(二)
  • SEQUENCE在RAC多实例开启CACHE的NEXTVAL数值乱序问题
  • 打破内网壁垒,轻松实现安防视频的云端汇聚与P2P超低延迟播放
  • 【unity编辑器开发与拓展EditorGUILayoyt和GUILayoyt】
  • 数据蓝海里的合规漩涡
  • Windows GNU Radio避坑
  • CUDA程序中的Benchmark耗时测量方法与工具推荐
  • 深度学习笔记30-阿尔茨海默病诊断特征优化版(Pytorch)
  • 和鲸社区深度学习基础训练营2025年关卡4